web第七天

对象下的属性方法
    in 判断属性是否属于某个对象
    Object.getProperty()限定对象的属性操作
    Object.getProperties()限定对象的多个属性操作
    instanceof判断是否属于某个对象
    Object.getPrototypeOf()获得对象原型
    Object.isPrototypeOf()判断对象是否存在另一个原型上
    Object.getOwnPropertyNames()返回对象下的所有属性
    Object.hasOwnProperty()判断对象自身是否有指定属性
    Object.keys()返回对象可枚举的属性
    Object.prototype.propertyIsEnumerable()判断是否可枚举属性,返回布尔值
    Object.freeze()冻结一个对象(只能查询)
    Object.isFrozen()判断是否是冻结对象
    Object.seal()密封一个对象(只能查询和修改)
    Object.isSeal()判断是否是密封对象
    Object.preventExtensions()让对象不可扩展(不能添加)
    Object.isExtensible()判断是否是不可扩展的对象
判断数组的方法有哪些
    1.instanceof判断,但是会判断出父类对象
        x instanceof Array
    2.isArray()ES5后新增的方法
        Array.isArray(x)
    3.通过构造器判断,每个对象都会有自己的构造器
        x.constructor==Array
    4.prototype判断,如果是实例可以改变this指向
        Object.prototype.toString.call(x)=="[object Array]"
    5.getPrototypeOf返回原型进行判断
        Object.getPrototypeOf(x)==Array.prototype
判断对象的方法有哪些
    同上,没有isArray()方法
    typeof emp=="Object"//缺点null也会验证为对象
判断对象下的属性方法有哪些
    1.in验证包括自身和原型的属性
        "name" in v
    2.hasOwnProperty()验证自身对象的属性
        v.hasOwnProperty("age")
    3.判断是否是undefined,验证包括自身和原型的属性
        v.name==undefined
        typeof v.age=="undefined"
遍历对象的方法有哪些
    1.for in 遍历包括自身可枚举的和原型的属性
        for(var k in v){console.log(k,v[k])}
    2.Object.keys()遍历自身可枚举的属性
        Object.keys(v)
    3.Object.getOwnPropertyNames()遍历自身可枚举和不可枚举属性
        Object.getOwnPropertyNames(v)
    4.prototype判断,如果是实例可以改变this指向
        
对象的复制
    深拷贝和浅拷贝
        浅拷贝:在引用变量赋值给另一个变量时,引用的是一个堆内存地址,当一个变量改变时,另一个变量也跟着改变
        深拷贝:在引用变量赋值给另一个变量时,开辟了一个新堆内存地址,当一个变量改变时,另一个变量不改变
    1.自己遍历,实现深拷贝
        var obj={age:23,name:"zhang"}
        var 0={}
        for(var i in obj){ o[v]=obj[v] }
    2.借助数组的函数,凡是可以返回新数组的函数,都可以执行赋值
        var x=[1,2,3]
        var y=x.concat()
    3.借助Object对象下的方法
        var o=Object.assign(obj)//复制对象,实现浅拷贝
        var o=Object.create(obj)//创建对象,实现深拷贝
    4.ES6下的扩展运算符(...)
        var x=[11,22,33]
        var y=[...x]
    5.Json数据格式
    JSON.parse()json转化成对象
    JSON.stringify()对象转化成json
    缺点:对象的属性如果是symbol类型是无法复制的
    var obj={name:"li",color:["red","blue"],y:{a:1,b:2}}
    var json=JSON.stringify(obj)
    var o=JSON.parse(json)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值