美文网首页
JS对象基本用法

JS对象基本用法

作者: 向前进进进 | 来源:发表于2022-08-08 11:18 被阅读0次

JS对象

定义

  • 无序的数据集合
  • 键值对的集合

1.声明对象的两种语法

let obj={'name':'thomas','age':30}
let obj=new Object{'name':'thomas','age':30}

细节
  • 键名是字符串,不是标识符,可以包含任意字符
  • 键名的引号可省略,省略之后就只可写标识符(开头可以是数字)
  • !!!即使引号省略了,键名也还是字符串!!!
  • 每个key都是对象的属性名(property)
  • 每个value都是对象的属性值
  • Object.keys(obj)可以得到obj的所有key
变量作属性名
let p1='name'
let obj={p1:'thomas'}   //属性名为p1
let obj2={[p1]:'robert'}   ///属性名为name

对比

  • 不加[]的属性名会自动变成字符串
  • 加了[]的属性名则会当作变量求值,值如果不是字符串,会自动变成字符串

2.如何删除对象的属性

删除obj的xxx属性的两种写法
delete obj.xxx
delete obj['xxx']
使obj的xxx属性值为undefined
obj.xxx=undefined

  • 不含属性名的检验方法
    'xxx' in obj === false
  • 含有属性名,但值为undefined的检验方法
    'xxx' in obj === true obj.xxx === undefined
    'xxx' in obj && obj.xxx === undefined
注意obj.xxx === undefined
  • 不能断定'xxx'是否为obj的属性。要判断的话,必须用'xxx' in obj

3.如何查看对象的属性

查看自身所有属性名
Object.leys(obj)
查看自身所有值
Object.values(obj)
查看自身所有属性名和属性值
Object.entries(obj)
查看自身+共有属性
console.dir(obj)
判断一个属性是自身的还是共有的
obj.hasOwnProperty('toString')

查看单个属性

两种方法查看属性
  • 中括号语法
    obj['name']
    obj[name] //变量name值一般不为name
    如果使用此语法,JS会先求[]中表达式的值,注意区别表达式是变量还是常量!!
  • 点语法
    obj.key
    如果使用点语法,那么点后面的一定是字符串常量

请注意请注意: obj.name等价于obj['name'],这里的name为字符串,而不是变量

let name = 'thomas'

obj[name]等价于obj['thomas']


4.如何修改或增加对象的属性

直接赋值(可修改可增加)
let obj = { 'name': 'thomas' }
obj.name = 'thomas'//第一种
obj['name'] = 'thomas'//第二种
obj['na' + 'me'] = 'thomas'//第三种
let key = 'name'
obj[key] = 'thomas'//第四种
批量赋值(可修改可增加)

Object.assign(obj,{age:18,gender:'男'})

修改或增加共有属性

Object.prototype.toString='xxx'

  • 一般来说,不要修改原型,会引起很多问题
修改隐藏属性
  • 推荐使用Object.create
let common = {kind:'human'}
let obj = Object.create(common)
obj.name = 'thomas'   //只赋值一个
Object.assign(obj,{age:18, color:'黄', haircolor:'黑'}   ///批量赋值

规范的意思是,要改就一开始改,不要后面再改,否则影响性能

5.'name' in obj和obj.hasOwnProperty('name') 的区别

'name' in obj可以知道name这个属性是否在obj里面,但是无法得知这个属性是自己的还是共有的
obj.hasOwnProperty('name')不仅可以知道name这个属性是否在obj里面,还可以得知这个属性是自己的还是共有的

相关文章

  • js对象及其方法

    1.对象MDN文档2.JS基础--JS对象及其基本用法3.JavaScript 对象所有API解析

  • JS 对象基本用法

    1.声明对象的两种语法 ES6新增了两种声明对象的方法,分别是let和const。 2.如何删除对象的属性 del...

  • JS 对象基本用法

    一、声明对象的两种语法 let obj = { 'name' : 'frank' , 'age' : 18} le...

  • js对象基本用法

    1.声明对象 定义:无序的数据集合、键值对的集合 写法 属性名:每个key都是对象的属性名(property) 属...

  • JS 对象基本用法

    1 声明对象的两种语法 2 如何删除对象的属性 3 如何查看对象的属性 Object.keys(obj) 查...

  • JS 对象基本用法

    对象的定义 对象是无序的数值集合或者键值对的集合 声明对象的语法 let object = { 'name' : ...

  • JS对象基本用法

    一、声明对象的两种方法(对象:无序的数据集合&键值对的集合) ·简易声明:let obj = { 'name' :...

  • JS对象基本用法

    与JS相关的七种数据类型以及五个falsy值 七种数据类型 : number、string、bool、symbol...

  • JS对象基本用法

    声明对象的两种语法 如何删除对象属性 如何查看对象的属性 查看自身所有属性 查看自身+共有属性 判断一个属性是自身...

  • JS 对象基本用法

    6种基本数据类型 null undefined string number boolean symobl 5种fa...

网友评论

      本文标题:JS对象基本用法

      本文链接:https://www.haomeiwen.com/subject/bvkwwrtx.html