ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。它是Javascript语言的第七种数据类型,是一种类似于字符串的数据类型。Symbol特点 1) Symbol的值是唯一的,用来解决命名冲突的问题 2) Symbol值不能与其他数据进行运算 3) Symbol定义的对象属性不能使用for...in看环遍历,但是可以使用Reflectownkeys来获取对象的所有键名 ``` // 创建 Symbol let s1 = Symbol(); console.log(s1, typeof s1); // 创建 Symbol传入标志 let s2 = Symbol ("aabbcc") ; Let s3 = Symbol("aabbcc"); console.log(s2===s3)//false //Symbol.for创建 let s4=Symbol.for("aabbcc"); let s5=Symbol.for("aabbcc"); console.log(s4===s5)//true ``` Symbol向对象中添加方法,在不确定原对象是否有添加的方法且又不想破坏原有对象的结构时很有用 ``` let game={ name:"打地鼠", up:function(){} down:function(){} } let methods={ up:Symbol(), down:Symbol() } game[methods.up]=function(){} game[methods.down]=function(){} //访问 game[methods.down]() //也可以这样添加 let game={ name:"打地鼠", [Symbol("上")]:function(){} } ```