javaScript入门-对象

环境: Mac GoogleChrome

 

概述:

对象Object是javaScript的最重要的数据类型,简单的说,object就是一种无序的符合数据集合。

/*
格式为: key:value
1. key若为字符串的话,是否添加引号都无所谓
2. 若key为数值,会自动转换为字符串
3. value可为任何数据类型,比如函数
*/
var obj = {
   foo: 'foo',
   'bar': 'bar',  
   1: 'number',

   getCount: function(num) {
        return 2 * num;
    },
};
obj.foo               // "foo", 或者使用obj['foo']
obj.bar               // "bar"
obj[1]                // "number" ,或使用obj['1'] 不要使用obj.1会报错,Unexpected number
obj.getCount(1)       //  4

对象赋值,可直接声明,或者新增属性,比如:

// 直接赋值
var obj = {count: 1};

// 新增属性
var obj = {};
obj.count = 1;

对象的查看属性操作,可使用: Object.keys

var obj = {key1: 1, key2:2};
Object.keys(obj);     // ["key1", "key2"]

属性的删除,可使用delete,删除成功后,会返回true

var obj = {key1:1,key2:2,key3:3};
Object.keys(obj);         // ["key1", "key2", "key3"]
// 删除指定的元素,返回true
delete obj.key3;          // true
Object.keys(obj);         // ["key1", "key2"]

// 注意删除不存在的元素,也返回true
delete obj.key3;          // true 

查看对象中是否存在某个key键,可使用: in

var obj = {1:'number', key1: 'key1', 0.7:0.7};
'1' in obj;      // true
1 in obj;        // true
0.7 in obj;      // true
0.8 in obj;      // false 

// 它存在的问题是,不能识别哪些属性是自己的,哪些属性是继承的
var newObj = {};
if ('toString' in newObj) {
    // 通过 hasOwnProperty 判定是否为对象自身属性
    console.log(newObj.hasOwnProperty('toString'));    // false
}

对象的遍历,可使用循环: for ... in

var obj = {a: 1, b: 2, c: 3};
for (var i in obj) {
    console.log(i, obj[i])
}

/*
a   1
b   2
c   3
*/

...

 

posted @ 2020-06-19 22:51  Code~  阅读(95)  评论(0)    收藏  举报