ECMAScript 6 —— 知识点(八) Symbol 类型

//ES6 引入js 第七种基本数据类型,除了原来的 Number,String,Object,Bool,Null,undefined,新加入了Symbol类型
let s = Symbol();
console.log(typeof s);//输出 symbol,小写的symbol 坑!
let s1 = Symbol('foo');//
console.log(typeof s1);//输出 symbol
console.log(s1);//输出 symbol(foo)
//创建枚举类型
const ColorEnum = { 
    Red:Symbol(),
    Green:Symbol(),
    Blue:Symbol()
}

function draw(color){
    switch(color)
    {
        case ColorEnum.Red:console.log('drawing with color red');break;
        case ColorEnum.Green:console.log('drawing with color green');break;
        case ColorEnum.Blue:console.log('drawing with color blue');break;
        default:console.log('not support!');break;
    }
}

draw(ColorEnum.Green);// 多优雅的写法

Symbol.for('bar') == Symbol.for('bar');//true,Symbol.for 使用全局配置key,每次都会全局键检索
Symbol('bar') === Symbol('bar');//false, 每次生成一个

var s1 = Symbol.for("foo");
Symbol.keyFor(s1);//"foo",返回一个已登记的 Symbol 类型值的key
var s2 = Symbol("foo");
Symbol.keyFor(s2);// undefined


猜你喜欢

转载自blog.csdn.net/wuxinwudai/article/details/80831466