对象的属性设置/获取,遍历,删除/检测,深拷贝/浅拷贝
1、属性的设置/获取
//对象的属性 设置/获取属性 . / [] 区别: .是取自身的属性 []可以是变量 var obj = {} obj.name = 'abc'; obj['age']= 18; console.log(obj['name']); //实例 var o ={ name = 'xyz', age = 18 } var a = 'name'; console.log(o.a) //报错 console.log(o[a]) // ===o['name']
2、属性的删除/检测
//删除属性 var o2 = { name = 'xyz', age = 18 } //delete o2.name; //delete o2['name']; //属性的检测 //in 运算符 判断对象中的属性是否存在 var o4 ={a:'1',b:'2',c:'3'} //console.log('a' in o4);//true //console.log('m' in o4);//false //使用对象的hasOwnProperty() var o4 = {a:'1',b:'2',c:'3'} // o4.hasOwnProperty('a'); //!=undefined 判断 注:慎用 如果属性的值为undefined 则判断不可用 var o4 = {a:'1',b:'2',c:'3'} //console.log(o4.a != undefined)
3、属性的遍历
//属性的遍历 for...in... //对象 获取到属性的key var o5 = {a:'1',b:'2',c:'3'} for(var key in o5){ console.log(key) //a b c console.log(o5[key]) //1 2 3 key是变量所以不用加引号 } //数组 获取索引 var arr = ['x','y','z']; for(var v in arr){ console.log(v); //0 1 2 } for(var i= 0;i<arr.length;i++){ console.log(arr[i]); } //forEach 没有返回值 var arr = ['x','y','z']; var a = arr.forEach(function(item,index,input){ //item当前元素 index索引 input ['x','y','z'] return item + '1' }) console.log(a)//undefined //map 回调函数 var arr = ['x','y','z']; var a = arr.map(function(){ return item + '1' }) console.log(a)//['x1','y1','z1']
4、序列化/深拷贝,浅拷贝
//序列化 var obj = { name = '123', content = '123321' } //JSON.stringify() //对象转json字符串 //JSON.parse() //json字符串转对象 console.log(typeos JSON.stringify(obj))//string var str = Json.stringify(obj); console.log(typeof JSON.parse(str))//object