ES6 随性学习之 新增数据类型 Symbol

时间:2022-07-26
本文章向大家介绍ES6 随性学习之 新增数据类型 Symbol,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

ES6新数据类型 Symbol

  • Symbol 表示独一无二的值,常用做对象唯一的属性名(注意 S要大写) let newData = Symbol('Im a new data type') console.log(newData) // Symbol(Im a new data type) console.log(typeof(newData)) // "symbol" // 因为是唯一性所以值相等的两个不会想等 let newData1 = Symbol('Im a new data type') console.log(newData === newDate1) // false // 两个等号也是一样 console.log(newData == newDate1) // false console.log(newData == newDate) // true // 三个等号也会等于自己 console.log(newData === newDate1) // true let obj = {} let sy = Symbol('name') obj[sy] = 'obj1' console.log(obj) // {Symbol(name): "obj1"} // Symbol 用作对象属性名的时候 将不能 用 obj.sy 将获取不到值 console.log(obj.sy) // undefined // 用[]可以正常获取到值 console.log(obj[sy]) // "obj1"
  • 先来看看基本用法
  • 上面说了常用作对象的唯一属性名
    • 这里也看看怎么用
  • Symbol.for()Symbol.keyFor()```javascript // Symbol.for() 传入一个参数 在全局搜索是否存在,不存在就新建一个Symbol(参数)并反回 let sym = Symbol('str') let sym1 = Symbol.for('str') console.log(sym1) // Symbol(str) console.log(sym1 === sym) // false let sym2 = Symbol.for('str') console.log(sym2) // Symbol(str) console.log(sym1 == sym2) // true // Symbol.keyFor() 返回一个已登记的 Symbol 类型值的key 的值 并反会这个值 let sym3 = Symbol(sym1) console.log(Symbol.keyFor(sym3)) // "str" ```来都来了点个赞呗~~~