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

JS-对象基本用法

作者: 张德瘦嬢嬢 | 来源:发表于2019-11-01 16:11 被阅读0次

定义

  1. 无序的 键(key)值(value)对组合
  2. 声明对象的方式
let obj = { 'name': 'zhangdeshou', 'age': 18 }
let obj = new Object({'name': 'zhangdeshou'})
let obj=Object.create({name:'saint'})  // 悄悄话,如此创建的对象在原型链上哦
console.log({ 'name': 'zhangds, 'age': 18 })  //不声明直接使用

中括号语法:obj['key']----推荐
点语法:obj.key
其它 :obj[key]---key值是一个变量是使用此 语法
注obj['name'] == obj.name != obj[name] name 是字符串
obj[key]:value ----[]号表示属性名是变量,先求值,再转字符串

  1. 细节

key是字符串,自然可以包含任何字符,请习惯性的加引号''
当然如果省略引号的话,其书写规范应该满足 标识符的书写规范
除了字符串,Symbol也可以做属性名 ,但是其在使用时有点特殊。见文档

Symbol作为对象key时
image.png
let a=Symbol()
let obj={
  [a]:'zds'
}
console.log(obj) //{Symbol(): "zds"}

奇怪的属性值
所有属性名都会自动变成字符串

   let obj ={
   1:'a',
   1e2:true,//会自动计算为100再转为字符串
   0XXF:false //会自动转化为10进制再转为字符串   
}

原型与原型链

隐藏属性
JS里每个对象都有一个隐藏属性
这个隐藏属性储存着其共有属性组成的对象的地址
这个共有属性组成的对象叫做原型
也就是说隐藏属性储存着原型的地址

let obj=Object.create({name:'jack'}) //在原型上添加属性 本身并没有 隐藏起来了
let obj1=new Object({name:'zhangdehsou'})

console.log(obj)
console.log(obj1)
image.png

增 改

直接赋值

let obj = {name:'frank'}
obj.name = 'jane'
obj['name'] ='jane'
obj.['na'+'me'] ='jane'
let key = 'name' obj[key] =='jane'
错误 obj[name] ='jane' --因为name是一个变量
批量赋值
Object.assign(obj,{1:'p1',2:'p2'})
共有属性的增改(一般不要修改)

无法通过自身修改或增加共有属性
修改原型的共有属性 (不推荐)

obj.proto.toString ='xxx'
window.Object.prototype.toString = 'xxx'
obj.proto=null ---删除共有属性,值也可以是一个对象
Object.create let obj = Object.create(common)

obj.name = undefined ---只删除属性值
delete obj.name ---删除属性名和属性值
delete obj['name'] ---删除属性名和属性值
'name' in obj --- 检查obj是否含有属性名
'name' in obj && obj.xxx ===undefined ---有属性名,但是没有值

读取对象自身所有的属性 Object.keys(obj)
读取对象的属性值 Object.values(obj)
读取对象的属性名和属性值 Object.entries(obj) ----得到是length个数组
读取共有属性 console.dir(obj)或者obj.proto (不推荐)
'toString' in obj ---检查是否有这个属性--自身属性和共有属性都算
obj.hasOwnProperty('name') ---检查这个属性是否是自身属性

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

都是两种查看属性是不是在对象里的方法
前者自身属性和共有属性都返回true,后者仅仅是自身属性才返回true


xmind

相关文章

  • JS-对象基本用法

    定义 无序的 键(key)值(value)对组合 声明对象的方式 中括号语法:obj['key']----推荐点语...

  • 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/tixqvctx.html