ES6 从入门到精通 # 09:Symbol 类型

Posted 凯小默

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6 从入门到精通 # 09:Symbol 类型相关的知识,希望对你有一定的参考价值。

说明

ES6 从入门到精通系列(全23讲)学习笔记。

Symbol 类型

原始数据类型:Symbol,它表示是独一无二的值。

最大的用途:用来定义对象的私有变量。

const kaimo = Symbol("kaimo");
const kaimo2 = Symbol("kaimo");
console.log(kaimo === kaimo2);

如果用 Symbol 定义的对象中的变量,取值时一定要用 [变量名]

let s = Symbol('s');
console.log(s);
let obj = 
	[s]: "kaimo"

console.log(obj[s]);

注意:用 Symbol 定义的对象中的变量无法被 for in 遍历出来

let s = Symbol('s');
let obj = 
	[s]: "kaimo",
	ss: "kaimo2"

for(let key in obj) 
	console.log(key)

应该使用 Object.getOwnPropertySymbols 或者 Reflect.ownKeys 去处理。

let s = Symbol('s');
let obj = 
	[s]: "kaimo",
	ss: "kaimo2"

console.log(Object.keys(obj))
console.log("--------------")
console.log(Object.getOwnPropertySymbols(obj))
console.log("--------------")
console.log(Reflect.ownKeys(obj))

以上是关于ES6 从入门到精通 # 09:Symbol 类型的主要内容,如果未能解决你的问题,请参考以下文章

ES6 从入门到精通 # 14:迭代器 Iterator 的用法

ES6 从入门到精通 # 14:迭代器 Iterator 的用法

ES6 从入门到精通 # 11:Map 数据类型

ES6 从入门到精通 # 11:Map 数据类型

ES6 从入门到精通 # 10:Set 集合数据类型

ES6 从入门到精通 # 10:Set 集合数据类型