JavaScript 属性的设置、获取、删除、判读及区别、遍历区别

//1.设置

var key = "mykey"

var obj1 = {}

obj1.a = "1";

obj1['j-d'] = "2";

obj1[key] = 3; //动态的key名

obj1.key = 4;

console.log('obj1', obj1)

//2.获取

console.log("获取", obj1['j-d'], obj1[key])

//3.删除

delete obj1.key;

console.log(obj1, "obj1")

//4.添加

Object.assign(obj1, {

addKey: "添加了一个key"

})

obj1.addKey2 = '添加的第二个key'

console.log(obj1)

 

//caniuse 网站 可以用来查看兼容性 

//可枚举 for in 可迭代 for of

//5.遍历

for(let key in obj1) { //es5

console.log('key', key)

console.log('value:', obj1[key])

}

//遍历 es6 for of:必须遍历可迭代对象 iterable:是否可迭代的

//array map set。。 天生具备可迭代性

//对象需要Object.values(obj1)) 处理一下,因为对象的不是可迭代的

//Object.keys //es5

//Object.values //es6

for(let value of Object.values(obj1)) { //es5

console.log('value', value)

}

 

//6.判断和区别(主要是判断属性是存在原型上还是在自身)

function Person() {}

Person.prototype.name = "green"; //原型賦值 可以从上向原型找

let p1 = new Person();

//判断是否存在name属性:自动查找

//方式一 :一般用来排除 undefined和null这样子的值console.log('1',!!p1.name) //!!p1.name判断是否有值,在判断空字符串还是有内容的字符串时不能用,返回true和false或者可以p1.name使用三元表达式判断是否有值。

//方式二: 看是否存在该属性

console.log('2','name' in p1)//判断name是否在p1里面

//方式三: 当前对象的原型数据可能不稳定,判断方式 更为精确:禁 止向原型查找,仅仅找属于自己的属性

p1.age=123; //实例赋值 只能找自身 不能找原型的

console.log('3:非原型name',p1.hasOwnProperty('name')) //自身是否有这个属性 hasOwnProperty区分原型还是自身

console.log('4:非原型age',p1.hasOwnProperty('age'))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值