ES6 symbol
来源:互联网 发布:ping ip地址的一个端口 编辑:程序博客网 时间:2024/06/05 04:22
在map中键可以用对象了。
但在其他地方还不行,es6添加了Symbol第七种数据类型。
它可以用来配置为对象的属性
它表示独一无二的值。
凡是属性名属于Symbol类型,就都是独一无二的,可以保证不会与其他属性名产生冲突。
let s = Symbol();typeof s// "symbol"
上面代码中,变量s
就是一个独一无二的值。typeof
运算符的结果,表明变量s
是Symbol数据类型,而不是字符串之类的其他类型。它不需要用new 来创建,还可以接受一个字符串作为参数。
表示对实例的描述,
var s1 = Symbol('foo');
s1 // Symbol(foo)
//以前js中没办法把一个对象当作对象的属性名
//symbol 实现了 它是一个新的数据类型,es6中就有七个了
//它不是类创建时不需要new 直接Symbol()
//每个symbol 都是独一无二的,即使没有指定描述
var s=Symbol();
var s2=Symbol();
//不相等
console.log(s===s2);
//symbol 可以转换为布尔值,不能当作数值
if(s3){
console.log('true')
}
//作为属性名 ,不能用Xx.symobl来定义
var obj={}
//需要用[symbol]
obj[s]='cc'
obj[s2]='bb'
obj[s3]='cc'
//[XX]:
var obj2={
[s]:function(){
console.log('aa')
}
}
//使用时obj[XX]
console.log(obj[s])
obj2[s]()
//增强对象写法
var obj3={
[s](){
console.log('aa')
}
}
//这是以前对象的写法。
var obj4={
[s]:function(){
console.log('aa')
}
}
obj3[s]()
//for('aa') 可以返回同一个值.
var a=Symbol.for('aa');
var b=Symbol.for('aa');
console.log(a===b);
内置symbol值
除了定义自己使用的Symbol值以外,ES6还提供了11个内置的Symbol值,指向语言内部使用的方法。
//类中的generator 方法
//Symbol.iterator方法返回一个Foo类的默认遍历器,for...of循环会自动调用这个遍历器。
class Fo{
constructor(...args){
this.args=args;
}
//*表示是一个generator
//类内的方法定义不需要function 直接函数名就可以了,
//所有*前的function就省略了
//[Symbol] 这是定义方法名称
//inerator 表示这个对象在of语句中调用这个方法
*[Symbol.iterator](){
for(var arg of this.args){
yield arg;
}
}
}
for(var a of new Fo(1,2,3,4)){
console.log(a);
}
- ES6--Symbol
- ES6 symbol
- 【ES6】symbol
- es6-symbol
- ES6--symbol
- 【es6】symbol
- es6->Symbol
- ES6详解五:Symbol
- ES6-Symbol类型
- 自学-ES6篇-Symbol
- ES6里symbol
- es6 javascript Symbol数据类型
- ES6 Symbol 学习
- ES6之路--Symbol
- es6 中的symbol
- ES6(九)Symbol
- ES6新数据类型 Symbol
- es6 Symbol(八)
- Oracle递归查询
- css
- 165.LeetCode Compare Version Numbers(easy)[字符串处理 分割与int转换]
- 机器学习中的距离计算
- [BZOJ2937][POI2000]建造酿酒厂(线性维护队列思想)
- ES6 symbol
- 线性代数常用基本知识 (含向量和矩阵范数<Matrix or vector norm>)
- 自定义Dialog
- mpandroidchat实例 仿360你财富
- 前后端数据对接防止接口被恶意调用
- LeetCode 299. Bulls and Cows
- startActivityForResult。。。。注意点
- Matlab显示图像时去除灰色边框
- 物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004