对象的属性设置/获取,遍历,删除/检测,深拷贝/浅拷贝

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

  

posted @ 2018-10-20 12:34  青春不迷也不彩  阅读(339)  评论(0编辑  收藏  举报