【JavaScript】10_对象初步:数据类型,属性与对象字面量

举报
魔天伦 发表于 2023/02/11 11:06:45 2023/02/11
1k+ 0 0
【摘要】 # 1、初识对象###       数据类型:​        原始值​          1.数值 Number​          2.大整数 BigInt​          3.字符串 String​          4.布尔值 Boolean​          5.空值 Null​          6.未定义 Undefined​          7.符号 Symbol​ ...

# 1、初识对象

###       数据类型:

​        原始值

​          1.数值 Number

​          2.大整数 BigInt

​          3.字符串 String

​          4.布尔值 Boolean

​          5.空值 Null

​          6.未定义 Undefined

​          7.符号 Symbol

​        对象

- 对象是JS中的一种复合数据类型,

​        它相当于一个容器,在对象中可以存储各种不同类型数据

​        原始值只能用来表示一些简单的数据,不能表示复杂数据
​        比如:现在需要在程序中表示一个人的信息

```
 let name = "孙悟空"

 let age = 18

 let gender = "男" 
```

​      对象中可以存储多个各种类型的数据

​        对象中存储的数据,我们称为属性
​      

​      向对象中添加属性:

​        对象.属性名 = 属性值

​      读取对象中的属性

​        对象.属性名

​        \- 如果读取的是一个对象中没有的属性

​          不会报错而是返回undefined

```html
    <title>初识对象</title>
    <script>
        let obj = Object()

        obj.name = '孙悟空'
        obj.age = 12
        obj.gender = '男'

        //修改属性
        obj.name = 'wu'

        //删除属性
        delete obj.age
        alert(obj.age)//undefined
    </script>
```

# 2、对象的属性

## 属性名

- 通常属性名就是一个字符串,所以属性名可以是任何值,没有什么特殊要求
  但是如果你的属性名太特殊了,不能直接使用,需要使用[]来设置
  虽然如此,但是我们还是强烈建议属性名也按照标识符的规范命名

- 也可以使用符号(symbol)作为属性名,来添加属性
  获取这种属性时,也必须使用symbol
  **使用symbol添加的属性,通常是那些不希望被外界访问的属性**

- **使用[]去操作属性时,可以使用变量**

## 属性值

- 对象的属性值可以是任意的数据类型,也可以是一个对象

使用typeof检查一个对象时,会返回object

###     in 运算符

​     \- 用来检查对象中是否含有某个属性

​      \- 语法 属性名 in obj

​      \- 如果有返回true,没有返回false

```html
    <script>
        let obj = Object()

        let mySymbol = Symbol()
        let newSymbol = Symbol()
        // 使用symbol作为属性名
        obj[mySymbol] = "通过symbol添加的属性"
        console.log(obj[mySymbol])

        obj.age = 18
        obj["gender"] = "男"

        let str = "address"
        obj[str] = "花果山" // 等价于 obj["address"] = "花果山"

        obj.str = "哈哈" // 使用.的形式添加属性时,不能使用变量

        obj.a = 123
        obj.b = 'hello'
        obj.c = true
        obj.d = 123n
        obj.f = Object()
        obj.f.name = "猪八戒"
        obj.f.age = 28

        // console.log(obj.f.name)
        
        // console.log(obj.gender)
        // console.log(obj["gender"])
        
        // console.log(typeof obj)
        console.log("name" in obj)
    </script>
```

# 3、对象字面量

对象字面量

- 可以直接使用{} 来创建对象

- 使用{}所创建的对象,可以直接向对象中添加属性

- 语法:

  ```
   {
        属性名:属性值,
      [属性名]:属性值,
  }
  ```

  ```html
      <script>
          let obj = Object()
  
          let mySymbol = Symbol()
  
          let obj2 = {
              name:'孙悟空',
              age:14,
              ['gender']:'男',
              ['mySymbol']:'特殊的属性',
              hello:{
                  a:1,
                  b:true
              }
          }
          console.log(obj)
          console.log(mySymbol)//mySymbol()
          console.log(obj2)
      </script>
  ```

  

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。