ES6-Symbol新的数据类型

1.Symbol 新的数据类型

  • 使用symbol函数执行得到一个symbol数据类型
  • symbol跟字符串差不多,但是使用symbol函数得到一个数据,每一个都是完全不同的
  • symbol可以接受一个参数,是对symbol数据的描述,即使描述一样,但是值也是不同
  • 一般当做对象的属性,任意一个symbol()得到的值都是不用的

2.代码如下

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Symbol基本用法</title>
    <script>
        let sym1 = Symbol('foo');
        let sym2 = Symbol('foo');
        console.log(typeof sym1);
        console.log(sym1);
        console.log(sym2);
        console.log(sym1 == sym2);

        let obj = {
            sym1: '珠峰',
            [sym1]: "珠峰教育"
        }
        console.log(obj);
        obj[sym2] = "珠峰";
        console.log(obj);
        // console.log(Symbol("1")+1);
        // Symbol值不可以转为数字
        // Number(Symbol(1));
        // 可以转为布尔值
        console.log(!Symbol("1"));
        // 可以在toString变成 显示字符串
        console.log(Symbol("zf").toString());
        // Symbol.for()如果之前有相同参数的Symbol值,找到这个值返回,如果没有就创建一个新的Symbol值
        let zf1 = Symbol("zhufeng");
        let zf2 = Symbol.for("zhufeng");
        console.log(zf1 == zf2);
    </script>
</head>

<body>

</body>

</html>
原文地址:https://www.cnblogs.com/dongxuelove/p/12935655.html