手记

JavaScript对象知识点

对象:属性无序,key-value,key为字符串
    1. 属性可以动态添加;对象有一个原型,prototype属性
    2. 对象创建
        1. 字面量
        2. new构造器、原型链
            1. prototype是一个对象属性
            2. new构造的对象的原型会指向构造器的prototype属性
            3. obj.z为undefined,可能是没有z属性,也可能z属性的值为undefined;可以通过in或者hasOwnProperty区分
            4. 可以继承原型链上的属性,但不会修改
        3. object.create()
    3. 属性操作
        1. 属性读写:点或者中括号或者for in
        2. 属性读写异常:读undefined;写有则修改,无则创建
        3. 属性删除:delete;属性不存在时也返回true
            1. var创建的全局或者局部变量不能被删除;函数不能被删除
            2. 隐式创建的全局变量可以被删除;delete window.onNo
        4. 属性检测:in操作符(会搜索原型链); hasOwnProperty只查找对象本身
            1. 是否可枚举:propertyIsEnumerable
            2. defineProperty所有标签默认为false
        5. 属性枚举:
    4. getter/setter
    5. 属性级的权限限制
    6. 对象标签、序列化
        1. proto
        2. class
        3. extensible;seal;freeze
        4. 序列化:JSON.stringify(),如果属性的值为undefined时,该属性不会出现在序列化结果里;NaN,infinaty会转化为null
        5. toString/valueof
4人推荐
随时随地看视频
慕课网APP