标签:很多 als desc esc 字符串 === 对象 scribe pre
Symbol 象征; 符号;
var kk={a:1,b:2}; var jj={b:3,c:4}; //因为 两个对象中 有属性名一样 就会被覆盖 Object.assign(kk,jj); console.log(kk); //{a: 1, b: 3, c: 4} b:2 被覆盖 //Symbol 就是返回一个唯一的值 让这个值做属性名 就不会发生覆盖的情况了
Symbol 是一中新的数据类型,表示独一无二的值。
// Symbol 类型是类似字符串的一种类型 没有属性名 let ss=Symbol(); let ss1=Symbol(); console.log(ss); //Symbol() Symbol类型的就是一个Symbol() console.log(typeof ss); //Symbol console.log(ss1); //Symbol() ss和ss1都一样 console.log(ss===ss1); // false 但是他们不相等 比较是唯一的 let sss=Symbol("aa"); console.log(sss); //Symbol(aa) 有很多个Symbol()怎么办(就用参数 来描述这些Symbol())
let name=Symbol(); var kk={ name:"ag", //这个时候的name默认是字符串 因为属性名默认就是字符串 [name]:"ak",//使用 Symbol类型做属性名时 必须用中括号[]括起来 } console.log(kk.name); //ag 使用点是访问不到 Symbol类型的 console.log(kk[name]); //ak Symbol类型就类似一个变量 访问时需要[] console.log(kk["name"]); //ag 如果中括号里面是一个字符串的话 访问的也不是symbol类型的
标签:很多 als desc esc 字符串 === 对象 scribe pre
原文地址:https://www.cnblogs.com/myniu/p/11777249.html