//声明
let s = Symbol();
let s1 = Symbol('hello world'); 可以传入描述字符串
let s1- = Symbol('hello world'); 可以传入描述字符串
let s2 = Symbol.for("i am");
let s3 = Symbol.for("i am");
s2 === s3 true
s1 === s1- false
特性
1 不能与其他数据进行运算
基本类型
sbnnu
string boolean number null undefiend+symbol
引用类型
object array function
例子:
ES6 引入了一种新的原始数据类型 Symbol ,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。
添加独一无二的方法
let youxi = {
name:"狼人杀",
[Symbol('say)]:function(){}
}
注意点及使用场景:
1 由于每一个 Symbol 的值都是不相等的,所以 Symbol 作为对象的属性名,可以保证属性不重名。
2 Symbol 作为对象属性名时不能用.运算符,要用方括号。因为.运算符后面是字符串,所以取到的是字符串 sy 属性,而不是 Symbol 值 sy 属性。
let syObject = {};
syObject[sy] = "kk";
syObject[sy]; // "kk"
syObject.sy; // undefined
前端面试题(es6+) -- symbol
最新推荐文章于 2024-04-09 23:30:31 发布