let s1 = Symbol()
let s2 = Symbol()
console.log(s1 === s2)
console.log(Object.is(s1, s2))
let obj = {
name: "yang"
}
let str = "str"
let s3 = Symbol(obj) //Symbol([object Object])
let s4 = Symbol(str) //Symbol(str)
console.log(s4)
console.log(s3)
console.log(s3.description)// Symbol的描述信息
console.log(typeof s3.description) //string
let s5 = Symbol.for("foo");
let s6 = Symbol.for("foo"); // Symbol.for 就是一个全局的环境
console.log(Symbol.keyFor(s6)) // foo 检查这个Symbol是否全局定义
console.log(s5 === s6) // true
function x() {
return Symbol.for("foo")
}
let y = Symbol.for("foo")
console.log(x() === y) // true
const grade = {
张三: {address: "四川成都金牛区", tel: "13693467587"},
李四: {address: "四川成都青羊区", tel: "13693467588"},
李四: {address: "四川成都高新区", tel: "13693467589"},
}
console.log(grade)
let stu1 = Symbol("李四")
let stu2 = Symbol("李四")
const grade1 = {
[stu1]: {address: "四川成都青羊区", tel: "13693467588"},
[stu2]: {address: "四川成都高新区", tel: "13693467589"},
}
console.log(grade1)
let sym = Symbol("design")
class User {
constructor(name) {
this.name = name
this[sym] = "design.cn"
}
getName() {
return this.name + "的网站" + this[sym]
}
}
const user = new User("严钢")
console.log(user.getName())
for (let key in user) {
console.log(key) //name
}
for (let key of Object.keys(user)) {
console.log(key) // name
}
for (let key of Object.getOwnPropertySymbols(user)) {
console.log(key) //Symbol("design")
}
for (let key of Reflect.ownKeys(user)){
console.log(key) //Symbol("design") name
}
const shapeType = {
// triangle : "Triangle",
// circle : "Circle"
triangle : Symbol(), //Symbol()
circle :Symbol()
}
//魔术字符串
function getArea (shape) {
let area = 0 ;
switch (shape) {
case shapeType.triangle:
area = 1
break
case shapeType.triangle:
area = 2
break
}
return area
}
一起设计吧