1、六大数据类型
String字符串类型、Number数字类型、Object对象类型、Boolean布尔值类型、Null空值、Undefined 未定义
symbol出现原因:
使用:
1 // 定义一个symbol类型的变量 2 let symbol = Symbol(); 3 console.log(symbol); 4 console.log(typeof symbol); //symbol 类型
特点:任何一个Symbol定义的都是独一无二的。
2、API
1、获取Symbol定义的属性 Object.getownPropertySymbol()
1 console.log(Object.getownPropertySymbols(Person)); //[Symbol(name)]
3、Symbol.for()创建的时候会把Symbol的值放到全局环境中,供以后的Symbol使用。
4、Symbol.keyFor() 搜索全局中是否有Symbol.for定义的变量 有的话拿过来用,没有重新定义
1 <script> 2 let name = Symbol('咱这是名字的描述'); 3 let Person = { 4 name: '名字普通', 5 [name]: '名字Symbol定义', 6 } 7 8 // 获取全部的属性 9 console.log(Reflect.ownKeys(Person)); // ["name", Symbol(咱这是名字的描述)] 10 // Symbol.for(); 在创建的时候会把symbol的值登记在全局环境中,供以后Symbol.for()来搜索 11 let name1 = Symbol.for('name'); 12 let name2 = Symbol.for('name'); 13 console.log(name1 === name2); //true 14 15 // Symbol.keyFor(); 搜索全局中是否有Symbol.for定义的变量,如果有返回 如果没有返回undefined 16 console.log(Symbol.keyFor(name1)); //name 17 18 console.log(Symbol.keyFor(name)); //undefined 19 20 </script>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。