JavaScript属性

 window.onload = function(){
        //属性的添加  ./[]  .是取自身的属性  []可以是变量
        var obj = {};
        obj.name="sonia";
        obj['age'] = 20;
        console.log(obj['age']);
        //实例
        var obj2 ={};
        obj2.name="jack";
        var a = 'name';
        console.log(obj2[a]);  //obj2['name'] jack

        //属性删除 delete
        var obj3 = {};
        obj3.name="sonia";
        obj3.age=20;
        obj3.state=false;
        delete obj3.name;  //删除属性  obj3.name obj['name']

        // var obj3 = {};
        // obj3.name="sonia";
        // obj3.age=20;
        // obj3.state=false; 
		// var age ='age';
        // delete obj3[age];console.log(obj3);

        //检测属性   判断对象中是否存在属性
        // in 运算符
        var obj4={
            name:'sonia',
            age:20
        };
        console.log('name' in obj4);
        //使用对象的hasOwnProperty() 方法
        var obj5={
            name:'sonia',
            age:20
        };
        //obj5.hasOwnProperty('name');
        var a = 'name';
        obj5.hasOwnProperty(a);
        //!=undefined 值的判断
        console.log(obj5.name !== undefined);  //= 赋值 ==比较  ===全等 != !==
        //if(a!='name'){}  //0==='0' 类型匹配

        //枚举属性
        //for in
        var arr = ['a','b','c','d'];
        var o = {name:'sonia',age:20};
        //对象
        for(v in o){   //for(属性 in 对象)
            console.log(v);//name age
            console.log(o[v]);  //sonia 20   o.v 不行   v是变量
        };
        //数组
        for(a in arr){   //for(索引 in 数组)
            console.log(a);  //01234
            console.log(arr[a]); //abcd
        };
        //
        for(var i=0;i<10;i++){}
        //forEach() 没有返回值 
        var arr2 = ['a','b','c','d'];
        arr2.forEach(function(item,index){
            console.log(item)
            //return item
        });
        //map() 回调函数中支持return返回值
        var arr3 = ['a','b','c','d'];
        arr3.map(function(item,index){
            return item;
        });

        //序列化   JSON.parse()//对象字符串转为对象(深拷贝)  JSON.stringify()对象转为对象字符串
        var o = {name:'sonia',age:20};
        console.log(typeof JSON.stringify(o)) //string
        console.log(typeof o);//object

        //var o = {name:'sonia',age:20};
        //var o2 = JSON.stringify(o);
        //console.log(typeof JSON.parse(o2));  //obj

        //深拷贝(双胞胎)  浅拷贝(引用  影子)
        //数组 slice()  concat()   //返回新的数组
        var arr4 = ['a','b','c','d'];
        //var arrCopy = arr4.slice(0);
        var arrCopy = arr4.concat();
        arrCopy[2]='abc';
        arr4  //["a", "b", "c", "d"]
        arrCopy // ["a", "b", "abc", "d"]

        //对象
        var o = {name:'sonia',age:20};
        var oCopy = JSON.parse(JSON.stringify(o));
        oCopy.name='ccc';
        oCopy; 


        //问题1:数组对象 var lists = [{name:'sonia1',age:20},{name:'sonia2',age:20},{name:'sonia3',age:20}]
        //问题2:数组对象有x返回1,否则返回2
        //var arr=[{x:1,y:2,z:3},{a:3,b:5,c:6},{l:6,m:8,n:9}];
        
    }

本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。

博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。

博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个无耻的文档搬运工!

原文地址:https://www.cnblogs.com/Dewumu/p/14395326.html