一、什么是 Symbol
Symbol 是 ES6 新出的一种数据类型,可以简单理解为 唯一的量,独一无二的值。
symbol: 记号,标记;被标记过了,可不就唯一了嘛。
二、为什么会有 Symbol
ES5的对象的属性名都是字符串,这样很容易造成命名冲突,可能会重写原有对象的属性或者方法。
于是,就新搞出了一种新的数据类型——Symbol。
它是一种基本数据类型,不能使用 new 命令。
三、基本用法
let s1 = Symbol([1,2]);
let s2 = Symbol('bar');
console.log(s1)
console.log(s2)
Symbol 是可以接受一个字符串作为参数的,仅用来对 Symbol 实例进行描述。
let s3 = Symbol('foo');
let s4 = Symbol('foo');
s3 === s4 // false
参数只是描述,另外,如果传入的参数是一个对象的话(无论是数组对象,还是object对象),会执行对象的toString()方法
let s1 = Symbol({
a:1});
let s2 = Symbol([1,2]);