Symbol

ES6 Symbol学习笔记

一、概述总结

1、用途。

        与别人的命名容易发生冲突。一种新的原始数据类型,表示独一无二的值。

2、生成。

        通过Symbol函数生成,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的 Symbol 类型。凡是属性名属于 Symbol 类型,就都是独一无二的,可以保证不会与其他属性名产生冲突。   唯一标识

3、注意。

不能使用new命令。

接受参数标识好分辨。

symbol( " aaa ") 和 symbol( " aaa ") 不相等 ,唯一的。

不能同其他类型比较。

可以转化成字符串和boolean值。

二、作为属性名的Symbol总结

1、起因。

唯一标识嘛不是,作为对象属性名不会被覆盖。

2、注意。

不能用点运算符。obj.x = 111 ; 点运算符后面是字符串类型。

同理,对象内部的Symbol也要方括号括住。

Symbol作为属性是公开属性,不是私有。

for...in...   for...of...不会循环它。

Object.getOwnPropertySymbols(obj)会返回对象的所有Symbol属性。

Reflect.ownKeys()会返回对象的所有键名。

三、Symbol.for() Symbol.keyFor()总结

Symbol.for("cat")  == Symbol.for("cat")。 用于登记(类似全局声明  唯一的了)

Symbol.keyFor() 返回一个已登记的Symbol值 。可以在不同的 iframe 或 service worker 中取到同一个值。

四、内置方法

Symbol.hasInstance  指向一个内部方法  应该类似  instanceof

Symbol.isConcatSpreadable concat()是否打开

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值