> 文章列表 > ES6 Symbol的介绍与创建

ES6 Symbol的介绍与创建

ES6 Symbol的介绍与创建

ES6 Symbol的介绍与创建

ES6 引入了一种新的原始数据类型 Symbol,表示独一无二的值。它是JavaScript语言的第七种数据类型。
u :undefined
s :string symbol
o :object
n :null number
b :boolean

Symbol的特点:

  1. Symbol 的值是唯一的,用来解决命名冲突的问题
  2. Symbol 值不能与其他数据进行运算
  3. Symbol 定义的对象属性不能使用 for…in 循环遍历,但是可以使用
    Reflect.ownKeys 来获取对象的所有键名。
//创建Symbol
let s = Symbol();
console.log(s);  // Symbol()//创建Symbol,传入字符串
let s2 = Symbol('abc');
let s3 = Symbol('abc');  
//这就好比世界上有两个人的名字一样但是他们的身份证号不一样
console.log(s2 === s3); //false//Symbol.for创建
let s4 = Symbol.for('abc');
let s5 = Symbol.for('abc');
console.log(s4 === s5); //true//不能与其他数据进行运算
let s6 = Symbol();
let result = s6 + 100;      //报错 
let result2 = s6 + '100';	//报错

对象添加Symbol类型的属性

//当我们想在一个对象中添加方法,但是不确定对象中是否已经存在此方法,可以使用Symbol完成
//第一种方法:
let game={...let methods = {up:Symbol(),down:Symbol()
}game[methods.up] = function(){}//第二种方法:
let youxi = {name:'game',[Symbol('say')]:function(){}
}