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>