JavaScript 对象属性

JavaScript 对象属性

  • 属性中的 . 和 [ ](点 和 方括号)的区别

    .  :取对象自身的属性值;

    [ ]:括号内容可以是变量;

1  var obj = {};
2  obj.name = 'Twx';
3  var nameA = 'name';
4  //    使用
5  obj['name'] = 'Twx';    等价于    obj[nameA] = 'Twx';
  • 属性的删除

 1 delete obj.name; // delete obj['name']; 

  • 属性的检测(判断属性是否属于对象)

    1. in 运算符

 1 'name' in obj = true; => 结果是 布尔 类型 

    2. hasOwnProperty([变量名称])

 1 hasOwnProperty('name') = true; => 结果是 布尔 类型

    3. != undefined (未定义)

 1 obj.name != undefined => true;  // 结果是 布尔 类型

  • 枚举属性(for  in  遍历)

    1. for  in  遍历中,对象 遍历出的是 key 值

1 var obj = {x:1,y:2,z:3};
2 for(a in obj){
3   a;         //x,y,z    key 值
4   obj[a];    //1,2,3    value 值
5 }

    2. for  in  遍历中,数组 遍历出的是 索引 值

1 var arr = [{x:1},{y:2},{z:3}];
2 for(a in arr){
3     a;    //0,1,2    数组的索引值
4 }

    3. 数组另两种遍历方式

      3.1 for(var i = 0;i < 10;i++){ ... }

1 for(var i = 0;i < 10; i++){
2     ...
3     //    同步执行
4 }

      3.2 $.each(arr, function(index【索引】,item【值】){ ... })

1 $.each(arr, function(index【索引】,item【值】){
2     ...
3     //    异步执行
4 });

    4. 序列化

      浅拷贝 只是复制了对象的引用地址,两个对象指向同一个内存地址,所以修改其中任意的值,另一个值都会随之变化,这就是浅拷贝(例:assign())

      深拷贝 是将对象及值复制过来,两个对象修改其中任意的值另一个值不会改变,这就是深拷贝(例:JSON.parse()和JSON.stringify(),但是此方法无法复制函数类型

1 // 深拷贝案例
2 var obj = {x:1,y:2,z:3};
3 JSON.stringify(obj);    //string    {'x':1,'y':2,'z':3};
4 typeof(JSON.stringify(obj));    //string
5 var str = JSON.stringify(obj);
6 JSON.parse(str);     //    object

    5. ajax 传参 数据方式

1 var data = {
2     'name':_name,
3     'age':_age,
4     ...
5 }
6 // ajax
7 data:{dataJson:JSON.stringify(data)}    //    传参

 

 

posted @ 2019-03-20 17:39  陈醋当墨写尽人生酸楚  阅读(119)  评论(0编辑  收藏  举报