对象类型学习笔记

101 阅读2分钟

 字面量创建

        var obj={}

          实例化创建对象

        var obj=new Object()

        以某个对象为原型创建一个新对象

        var obj =Object.create()

        对象中有一个名字,对应一个内容

        名字就是key,内容就是value,这两个都是成对出现的

        值就是属性, 属性是这个对象私有的变量值

        函数就是方法,设置可执行的语句块,属于这个对象的私有函数

        键值对,键时唯一的,键名不能重复,通过一个键名能快速的找到对应值

        属性名直接给,这个属性名就是字符串,命名要求和变量命名要求一样

        1.要以大小写字符,_下划线,$为开头

        使用双引号或者单引号包起来的的属性名,没有命名规则

        使用[] 设定属性名 []的两种给入方式

            1.使用引号引起来的字符串和数值

            2.变量名作为属性名

            []放入的变量值如果不是字符型或者Symbol类型,则会自动隐式转为字符串

var b={a:3}

var a='str'
    var obj={
       ['s s']:333,
       [b]:3
    }

       

                console.log(obj);

        数值型对象

        字符型对象

        布尔型对象

        当调用字符串方法、数值方法、布尔方法,会自动在堆中创建一个该对象类型,执行方法得到结果映射

        该类型非法字符不能使用.方法

        如果两个变量引用了同一个地址,那么这两个变量引用地址相同,修改属性时,另外一个也会跟着改变.         给其中一个变量设置了一个新对象时,改变了他的引用地址.

        JSON.stringify()  对象转JSON字符

        JSON.parse()  JSON转对象

        对象的遍历

           1.先按照隐式转换的数值从小到大

           2.再按照添加的顺序

        无法遍历Symbol类型

        浅复制的两种方法

        1.for(var key in obj)

        2.Object.assign

for(var key in obj){
            obj1\[key]=obj\[key]
        }
        obj.a=10
        console.log(obj1);
        console.log(obj);
        var obj2=Object.assign(obj)
        console.log(obj2);

内存泄漏和垃圾回收

        如果你要改变变量和对象之间的引用地址时,要先把这个变量的地址清空一下,让原来的那个对象变成垃圾,方便等一下垃圾回收,如果不把引用地址清空就会导致内存泄漏,这个对象也会一直在堆中占着位置