1 第七种数据类型Symbol

ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。它是JavaScript语言的第七种数据类型,前六种是:Undefined、Null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。

    let s = Symbol();
    console.log(typeof s); //"symbol"

Symbol类型变量通过Symbol()方法来构建(不能使用new),另外该方法可以接受一个字符串类型的参数作为该Symbol的描述

    let s1 = Symbol('tag');
    let s2 = Symbol('tag');
    
    s1 == s2; //false,参数仅仅作为描述,就算相同描述的两个Symbol也是不同的

Symbol类型使用注意:

    let s = Symbol();
    
    "symbol:" + s; //报错,无法和字符串运算
    
    s + 2;  //报错,无法和字符串运算
    
    s1.toString(); //"Symbol(tag)",Symbol显示转换为字符串类型是可以的
    
    if(s){
        ...         //可以转换为bool
    }

说了这么多,ES6中引入Symbol到底是用来干嘛呢?

网友评论