• 简介
  • 正文
  • 思考

    简介

    ES6引入了一种新的原始数据类型Symbol,表示独一无二的值

    它是JavaScript语言的第七种数据类型,前六种是:

    Undefined、Null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)

    正文

    Symbol值与字符串类似,可以当做对象的属性名

    因为Symbol都是独一无二的,所以可以保证不会与其他属性名产生冲突

    Symbol值通过Symbol函数生成,Symbol函数可以接受一个字符串作为参数,表示对Symbol的描述

    主要用于调试的时候方便区分不同的Symbol值

    1. let aaa = Symbol('a')
    2. let bbb = Symbol('b')
    3. let obj = {
    4. [aaa]: 'Hello!',
    5. [bbb]: 'World!'
    6. }
    7. console.log(obj)
    8. // Object {Symbol(a): "Hello!", Symbol(b): "World!"}
    9. obj[aaa]
    10. // "Hello!"
    11. obj[bbb]
    12. // "World!"

    思考

    这部分内容希望你都可以手动敲一遍,独立思考

    如何判断一个值是否是Symbol?

    试着写出一个function,接受一个任意值作为参数,返回它的数据类型

    数据类型一共七种,在本节的简介里提到过