发布网友
共1个回答
热心网友
JS七种数据类型包括:number, string, symbol, bool, undefined, null, object。
五种falsy值为:undefined, null, NaN, 0, ''。
其中object是唯一一种复杂类型,定义为无序的数据集合,键值对的集合。
对象的写法包括:let obj = { 'name': 'frank', 'age': 18 }, let obj = new Object({'name': 'frank'}), console.log({ 'name': 'frank, 'age': 18 })。
对象键名是字符串,不是标识符,可以包含任意字符,且键名必须是字符串,即使省略引号也仅限于标识符。
每个键都是对象的属性名,每个值都是对象的属性值。对象可包含奇怪的属性名,所有属性名会自动转换为字符串。
变量作为属性名,之前需用常量,而现在可通过两种方式:let p1 = 'name'; let obj = { p1 : 'frank'} 或者 let obj = { [p1] : 'frank' },后者的属性名会根据变量求值。
对象的隐藏属性储存其共有属性组成的对象地址,此地址指向对象的原型,即共有属性组成的对象。
对象的原型也是对象,每个对象的原型指向根原型,即null。通过原型,可查看对象的共有属性。
使用中括号语法和点语法访问属性。点语法可能误导你认为属性名不是字符串,建议优先使用中括号语法。
通过直接赋值、Object.assign或修改原型来写属性。修改隐藏属性推荐使用Object.create而非__proto__。
删除属性用delete关键字,如delete obj['name']。查看属性可用Object.keys或console.dir,或通过中括号语法。
修改属性可通过直接赋值或批量赋值。增加属性与修改属性类似,已有属性则改,无属性则增。
总结:对JS对象的理解与操作需掌握键值对的集合、属性名与值的区分、中括号与点语法的使用、隐藏属性与原型的特性,以及如何进行增删改查操作。