JS对象的基本用法 1

275 阅读2分钟

在了解了七种数据类型,分别是:

number string bool symbol

null undefined

object

object作为七种数据类型,唯一一种复杂的类型,需要单独学习~

对象 0bject

让我们先来了解一下什么是对象

  ·无序的数据组合

  ·键值的写法

一、声明对象的两种方法

let obj = { 'name' : 'frank', 'age' : 18 } 

let obj = new Object ({ 'name' : 'frank'} )  //正规写法

console.log({'name':'frank','age':18})

细节

上述代码 name、age是一个键名  frank是一个键值

·键名是字符串 不是标识符 可以包含任意的字符

·可以把单引号省略 省略之后只能写标识符

·就算引号省略了,键名依旧是字符串

1、属性名 属性值

每个可以都是对象的属性名   name 就是属性名

每个value都是对象的属性值   frank就是属性值

2、奇怪的属性名

所有的属性名都会变成字符串

let obj = {
  1: 'a',
  3.2: 'b',
  1e2: true, 不加''就会变成 100
  1e-2: true, 不加''就会变成0.01
  .234: true,  会变成0.234
  0xFF: true  会变成16进制
};
Object.keys(obj);

**只有加了引号 才不会出现这种情况
**

Object.keys(obj);      //可以得到所有obj的key

3、如何用变量做属性名

之前都是用常量做属性名(只要不是变量就都是常量

let p1 = 'name'

let obj = { p1 : 'frank'}   //这样写,属性名为 'p1'

let obj = { [p1] : 'frank' }   //这样写,属性名为 'name'

对比

   不加 [ ] 的属性名会自动变成字符串

   加了 [ ] 则会当做变量求值

   值如果不是字符串,则会自动变成字符串

5、对象的隐藏属性

隐藏属性

   JS 中每一个对象都有一个隐藏属性

这个隐藏属性储存着其共有属性组成的对象的地址

这个共有属性组成的对象叫做原型

   也就是说,隐藏属性储存着原型的地址

 如上图:不是409是原型, 409是对象的地址,409所代表的这一块内存,是这个obj对象的原型

二、删除属性

delete obj.xxx 或 delete obj['xxx']  

·可删除obj的xxx属性

·请区分**「属性值为 undefined」和「不含属性名」**

    undefined只删除值,delete删除值和属性