ES6_Symbol(八)

Symbol

ES6 新增数据类型

火影忍者例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var 忍者能力级别 = {
神级:'天生外挂、尾兽查克拉、轮回眼、血轮眼、N种血继限界、战斗智商、家族秘术、柱间细胞',
影级:'N种血继限界、血轮眼、轮回眼',
特别上忍:'一种血继限界or种族秘术、血轮眼、尾兽查克拉',
普通忍者:'资质普通、普通家族、无种族秘术'
}

function 创造忍者(category){
if(category in 忍者能力级别){
var desc = 忍者能力级别[category]
console.log(`你的忍者能力是:${category}!\n你具有如下能力:${desc}`);
}else{
console.log('你可能是个普通人、忍者鄙视链底端的存在,最好别出村子!')
}
}

创造忍者('神级') // 通过 Key 你知道你的能力

创造忍者('xxx') // 不存在的 Key 你具有未知的能力
  • 升级:走进科学!每个级别的忍者可能他的基因就不一样,于是创建的时候,你可以知道他的基因序列
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var 忍者能力级别 = {
神级:'32103920139102',
影级:'12312312312312',
特别上忍:'0950905940594',
普通忍者:'00000432423423'
}

function 创造忍者(category){
if(category in 忍者能力级别){
var desc = 忍者能力级别[category]
console.log(`你的基因是:${category}!\n你具有如下基因序列:${desc}`);
}else{
console.log('你可能是个普通人、忍者鄙视链底端的存在,最好别出村子!')
}
}

创造忍者('神级') // 通过 Key 你知道你的能力

创造忍者('xxx') // 不存在的 Key 你具有未知的能力
  • 再次升级:我们知道每个忍者的能力可能天生就不同,于是基因对于我们来说只是用来区分不同
  • Symbol 代表你是独一无二的
1
2
3
4
5
6
7
8
9
10
var 忍者能力级别 = {
神级:Symbol(),
影级:Symbol(),
特别上忍:Symbol(),
普通忍者:Symbol()
}

忍者能力级别['神级'] === 忍者能力级别['神级'] // true
忍者能力级别['神级'] === 忍者能力级别['影级'] // false
忍者能力级别['特别上忍'] === 忍者能力级别['普通忍者'] // false