JavaScript零基础纯小白学习——对象

javascript中对象是一个无序的集合,由键值对组成
键是不可变的,键要唯一

var obj = {k1: 'v1', k3: 'v3', k2: 'v2'};

访问对象的属性
访问对象中属性的值用 . 表示

obj.k1; // v1

对象的属性名如果包含特殊字符需要用 ’ ‘括起来, 访问的时候也不能直接用**.**,需要用 [’ '] 访问,比如:

var obj = {'k-1': 'v1'};
obj['k-1']; // v1

如果访问对象中一个不存在的属性,那么会返回undefined

var obj = {k1:'v1'};
obj.k2; // undefined

添加属性

var obj = {k1:'v1'};
obj.k2 = 'v2'; // undefined
obj; // {k1: 'v1', k2: 'v2'}

删除属性

var obj = {k1: 'v1', k2: 'v2'};
delete obj.k2;
obj; // {k1:'v1'}
obj.k2; // undefined

判断属性是否存在

var obj = {k1: 'v1', k2: 'v2'};
'k2' in obj; // true
'k3' in obj; // false
'toString' in obj; // true

注意: 所有的对象都会在原型链上指向object,所以所有的对应都是继承了object 这个对象,如果要判断属性是否是自身存在的,并不是继承得来的,要使用hasOwnProperty()

var obj = {k1: 'v1', k2: 'v2'};
obj.hasOwnProperty('k1'); // true
obj.hasOwnProperty('toString'); // false

遍历对象

var obj = {k1: 'v1', k2: 'v2', k3: 'v3'};
for (var i in obj) {
console.log(i); // k1, k2, k3
}

Map和Set
Map是一组键值对的结构,具有极快的查找速度。

var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
m.get('Michael'); // 95

Map的方法

var m = Map();// 初始化一个空的Map
m.set('Bob', 59);// 添加
m.has('Bob');// true
m.get('Bob'); // 59
m.delete('Bob'); // 删除
m.has('Bob'); // false

Map中一个key只能对应一个value,所以如果给同一个值进行多次赋值,那么只会保留最后一次的值

var m = new Map();
m.set('Adam', 67);
m.set('Adam', 88);
m.get('Adam'); // 88

遍历Map

var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
m.forEach(function (value, key, map) {
    console.log(value);//'x', 'y', 'z'
});

Set
Set只存储key, 不存储value,由于key不能重复,所以Set中没有重复的key

var s = new Set([1, 2, 3, 3]);
s; // Set {1, 2, 3}

Set的方法

var s = new Set();
s.add(1);
s; // Set {1}
s.delete(1);
s; // Set {}

遍历Set
由于Set是没有索引的,所以只会返回元素本身

var s = new Set(['A', 'B', 'C']);
s.forEach(function (element, sameElement, set) {
    console.log(element); // 'A', 'B', 'C'
});

猜你喜欢

转载自blog.csdn.net/qx_szj/article/details/106540949
今日推荐