【es6笔记】es6的入门简介_Symbol(4)
这里整理了ES6新增的类型Symbol。
<!DOCType html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
console.log("--------------Symbol--------------");
/*
ES引入了新的数据类型Symbol。标识独一无二的值。
JavaScript第七种数据类型。是一种类似于字符串的数据类型。
特点:
1.Symbol的值是唯一的,用来解决命名冲突的问题。
2.Symbol值不能与其他数据进行运算
3.Symbol定义的对象属性不能使用 for...in 循环遍历,
但是可以用Reflect.ownKeys方法获取对象的所有键名
*/
let s1 = Symbol();
console.log(s1, typeof s1); //Symbol() "symbol"
let s2 = Symbol('小明');
let s3 = Symbol('小明');
console.log(s2 === s3); //false
let s4 = Symbol.for("小红");
console.log(s4, typeof s4); // Symbol(小红) 'symbol'
let s5 = Symbol.for("小红");
console.log(s4 === s5); //true
console.log(Symbol.keyFor(s5)); //小红
// 查看描述
let s6 = Symbol.for("小刚"); //小刚
console.log(s6.description);
// 转换string
let s7 = Symbol('小张');
console.log(String(s7)); //Symbol(小张)
// bool判断
let s8 = Symbol();
console.log(Boolean(s8)); //true
//USONB
// u undefined
// s string symbol
// o object
// n number
// b boolean
let kind = Symbol("kind");
let car = {
name: "奔驰",
// [Synmbol('kind')]: '赛车游戏',
[kind]: '小轿车',
[Symbol("col")]: '红色',
[Symbol.for("colour")]: '黑色',
[Symbol.for('加速')]: function () {
console.log("需要加速");
},
[Symbol('减速')]: function () {
console.log("需要减速");
}
};
console.log(car[kind]); //小轿车
console.log(car.kind); //undefined
console.log(car[Symbol("col")]); //undefined
console.log(car[Symbol.for("colour")]); //黑色
car[Symbol.for("加速")](); //需要加速
//car[Symbol('减速')](); // TypeError: car[Symbol(...)] is not a function
//Symbol.for() 都会重复使用同一个Symbol值
//Symbol() 他是每次都会用不同的Symbol值
</script>
</body>
</html>
欢迎大家的意见和交流
email: li_mingxie@163.com