💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## Symbol > Symbol是一种新的原始数据类型,表示独一无二的值。它是JS语言的第七种数据类型。(前六种:undefined,null,boolean,String,Number,Object) > Symbol是由Symbol函数生成。(对象的属性名现在可以有两种类型,一种是字符串「可重复」,一种是新境的Symbol类型,凡是属性名是Symbol类型的,就是独一无二的,可以保证不与其他属性名冲突) ``` let s = Symbol() // 注意没有new typeof s // symbol # 接收参数 ley s1 = Symbol('foo') s1 //symbol(foo) s1.toString() //"symbol(foo)" # 运算报错 let sym = symbol() "your symbol is" + sym //TypeError:can't convert symbol to string # 直接转换 var sym = symbol() Boolean(sym) //true # symbol值作为属性名 var mySym = Symbol(); var a = {} a[mySym]='hello'; //方式一 Object.defineProperty(a,mySym,{value:'hello'}) // 方式二 a={ [mySym]:'hello' // 在对象内部symbol值必须放在方括号之中 } ``` - 注意:symbol是一种原始数据类型,所以创建它时,不用new(它不是对象)。 - 上面代码中,变量s是一个独一无二的值 - Symbol值不是对象,所以不能添加属性,基本上,它是一种类似于字符串的数据类型 - symbol函数接收一个字符串作为参数,表示对symbol实例的描述,主要是为了在控制台显示,或者转为字符串时,比较容易区分。 - symbol值不能与其他类型的值进行运算,会报错(但可以显示转换其值)