基本数据类型:
    undefined
    nul
    boolean
    string
    number
    object

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

    1. {
    2. // 声明
    3. let a1 = Symbol();
    4. let a2 = Symbol();
    5. console.log(a1 === a2); // false
    6. let a3 = Symbol.for("a3");
    7. let a4 = Symbol.for("a3");
    8. console.log(a3 === a4); // true
    9. }
    10. {
    11. const a5 = Symbol("a5");
    12. console.log(Symbol.keyFor(a5)); // undefined
    13. const a6 = Symbol.for("a5");
    14. console.log(Symbol.keyFor(a6)) // a5
    15. }
    16. {
    17. let a1 = Symbol.for("abc");
    18. let obj = {
    19. [a1]: "123",
    20. abc: 345,
    21. c: 456,
    22. };
    23. console.log("obj", obj); // obj { abc: 345, c: 456, [Symbol(abc)]: '123' }
    24. for (let [key, value] of Object.entries(obj)) {
    25. console.log("let of", key, value);
    26. // let of abc 345
    27. // let of c 456
    28. }
    29. Object.getOwnPropertySymbols(obj).forEach(function (item) {
    30. console.log(obj[item]); // 123
    31. });
    32. Reflect.ownKeys(obj).forEach(function (item) {
    33. console.log("ownkeys", item, obj[item]);
    34. // ownkeys abc 345
    35. // ownkeys c 456
    36. });
    37. }