关于javascript:JS对象增删改查

39次阅读

共计 807 个字符,预计需要花费 3 分钟才能阅读完成。

object 是第七种数据类型,惟一一种简单类型

申明

最罕用的简略写法
let obj = {'name': 'frank', 'age': 18}

obj.name = 'frank' //name 是字符串
obj.['name'] = 'frank'

细节

  • 键名是字符串,不是标识符,能够蕴含任意字符
  • 引号可省略,省略之后就只能写标识符
  • 就算引号省略了,键名也还是字符串

删除

删除 obj 的 xxx 属性
detele obj.xxx 或者 delete obj[‘xxx’]

判断不含属性名
‘xxx’ in obj === false(xxx 肯定要加单引号)

判断含有属性名,但属性值为 undefined
‘xxx’ in obj &&obj.xxx === undefined

查看

输出属性名查看属性值
obj[‘key’]

obj.key
这里的 name 是 字符串 ,等价于 obj[‘name’]
点语法会误导你,让你认为 key 不是字符串

obj[key]  
这里的 key 是 变量,循环打印的时候会用到这种写法,因为能够一直的替换变量的值
js 会求[] 中表达式的值

查看本身所有属性名
Object.keys(obj)

查看本身 + 共有属性
console.dir(obj)

判断一个属性是本身的还有共有的
obj.hasOwnProperty(‘toString’)
后果 true 就阐明是本身的

key in obj 和 obj.hasOwnProperty(‘toString’)的区别
‘key’ in obj 不能判断出这个属性是本身属性还是共有属性
obj.hasOwnProperty(‘key’) 能够判断出这个属性是本身属性还是共有属性

浏览器控制台间接输出对象的名字: obj 再按回车
就会返回对象的所有属性名和属性值

批改

改本身:obj[‘name’] = ‘jack’

批量赋值:Object.assign(obj, {age: 18,gender: ‘man’})

不举荐批改原型
改原型:let obj = Object.create(common)

正文完
 0