前端学习一属性的添加/删除/检测。。。。。。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>属性</title>
    <script>
    window.onload = function(){
        //属性的添加 ./[]
        // . 是取自身的属性,[] 获取的可以是变量。
        //取自身属性
        var obj = {};
        obj.name = 'sonia';
        obj['age'] = 20;
        console.log(obj.age);
        console.log(obj['age']);
        //变量
        var obj2 = {};
        obj2.name = 'sonia';
        var a = 'name';
        console.log(obj2[a]);

        //属性的删除 delete
        var obj3 = {};
            obj3.name = 'sonia';
            obj3.age = 12;
            obj3.state=false;

        delete obj3.name;//删除name属性
        delete obj3['name'];//删除name属性
        
        //属性的检测  判断是否存在该属性
        // 1、in 运算符(可以获取继承来的属性)
        var obj4 ={
            name:'sonia',
            age:20
        };
        //检测属性name是否存在于obj4这个对象中
        console.log('name' in obj4);//存在 true 不存在 false
        // 2、对象.hasOwnProperty()  方法 
        obj4.hasOwnProperty('name');
        //!=underfined 值得判断
        console.log(obj4.name!==undefined);

        //= == === != !==
        //= 赋值; 
        //== 判断;=== 全等判断(对类型也比较)
        //0=='0'=>true;0==='0'=>false;

        //枚举属性
        //for in
        //for(索引 in 数组){};
        var arr= ['a','b','c','d'];
        var o = {name:'sonia',age:23};
        for( a in arr){
            console.log(a);//打印出下标0,1,2,3
            console.log(arr[a]);//打印出值a,b,c,d
        };
         //for(属性 in 对象){};
        for( b in o){
            console.log(b);//打印出:name,age
            console.log(o[b]);//打印出值sonia,23
        };
        //forEach() 
        var arr2= ['a','b','c','d'];
        arr2.forEach(function(item,index){//无返回值
            console.log(item);//abcd
            console.log(index);//0123
        });
        //map() 回调函数支持return返回值
        var arr3= ['a','b','c','d'];
        arr3.map(function(item,index){//无返回值
            return item;
        });

        //序列化   JSON.parse() JSON.stringify()
         //JSON.parse() 对象字符串转为对象
         var o = "{name:'sonia',age:23}";
         var o2 = JSON.parse(o);//这时你就可以这样用:o.name
         //JSON.stringify() 对象转为对象字符串
         var o = {name:'sonia',age:23};
         console.log(typeof JSON.stringify(o));//转换成了string类型。

         //深拷贝(拷贝出另一个数组,没有联系的数组)
         //数组 slice(开始,结束)  concat() 两个方法返回的是新数组
         var arr4= ['a','b','c','d'];
         arr4.slice(1,2);//b,从第一个开始到第二个结束不包括第二个
         arr4.slice(0);//返回的是一个新的数组,值与arr4一致。
         var arrCopy = arr4.slice(0);
         arrCopy[0]='aaaa';//此处数值改变不会影响arr4[0];
         //concat()
         var arr4= ['a','b','c','d'];
         var arrCopy = arr4.concat()
         arrCopy[0]='aaaa';//此处数值改变不会影响arr4[0];
        //对象
        var o = {name:'sonia',age:23};
        var oCopy = JSON.parse(JSON.stringify(o));
        oCopy.name = 'cccccc';//此处数值改变不会影响o.name;

         // 浅拷贝(引用 影子)
         //数组
         var oo2=[1,2,3,4];
         var ooo=oo2;
         ooo[0]=23;
         console.log(oo2[0]);//23
         //对象
         var oo={name:'qwe',age:20};
         var ooo=oo;
         ooo.age=23;
         console.log(oo.age);//23
         
    }
    
    </script>
</head>
<body>
    
</body>
</html>

 

阅读更多
博主设置当前文章不允许评论。
换一批

没有更多推荐了,返回首页