JS 语言基础笔记——第三篇(Symbol类型、Object类型)

前言

本篇笔记 JS 语言基础 第三篇。
主要内容有:

  1. ES6 新增简单数据类型 Symbol;
  2. 复杂数据类型 Object。

一、Symbol类型(ES6新增)

符号是原始值,且是唯一不可变的。它的用途就是确保对象属性使用唯一标识符,不会发生属性冲突的危险。它并不是为了提供私有属性的行为才增加的,相反,符号就是用来创建唯一记号,进而用作非字符串形式的对象属性。

(1)基本用法

  1. 使用 Symbol() 函数初始化。let sym = Symbol();
  2. 调用 Symbol() 函数时,可以传入一个字符串参数作为对符号的描述,但是,这个字符串参数与符号定义或标识完全无关
let sym = Symbol('foo');
let otherSym = Symbol('foo');
console.log(sym == otherSym);  // false
  1. 符号没有字面量(一般固定值称为字面量,类似let num = 123;,123 即为字面量)语法,这也是关键。

你只需要创建 Symbol() 实例并将其用作对象的新属性,就可以保证它不会覆盖已有的对象属性。

let sym = Symbol();
let otherSym = Symbol('foo');
console.log(sym, otherSym);  // Symbol() Symbol(foo)
  1. Symbol() 函数不能用作构造函数,即不能与 new 关键字一起使用。
let sym = new Symbol();
console.log(sym);  // Uncaught TypeError: Symbol is not a constructor

如果想要使用符号包装对象,可以借用 Object() 函数:

let sym = Symbol();
let objSym = Object(sym);
console.log(typeof objSym);  // Object

(2)使用全局符号注册表

如果运行时的不同部分需要共享和重用符号实例,则可以用一个字符串作为键,在全局符号注册表中创建并重用符号。这样需要使用 Symbol.for() 方法:

let fooSym = Symbol.for('foo');  // 创建新符号
let otherSym = Symbol.for('foo');  // 重用已有符号
consol
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值