Symbol:
- ES6 新的原始数据类型,通过Symbol函数生成
let sym = Symbol('foo')
//描述Symbol的字符串用于区分,传入对象等会自动转为字符串
sym.description
// “foo” - 表示独一无二的值,每一个 Symbol 值都是不相等的,用于避免对象属性名冲突.
- 它是一种类似于字符串的数据类型,而完全不同于对象
- 不在循环遍历中出现,可使用Object.getOwnPropertySymbols()获取
- 阮一峰的Symbol
Map:
- Map类似于对象,JS对象键必须是字符串或者symbol,map的键可以是任意值
- Map是一组键值对的结构,相对于数据具有极快的查找速度。
new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);// {"Michael" => 95, "Bob" => 75, "Tracy" => 85}
Set:
- Set类似于数组,但是它里面每一项的值是唯一的,没有重复的值。js中的数组可以放入各种数据类型的数据
- 举一个例子
var arr = [1, 2, 3.14, 'Hello', null, true];
- Map存放键值对,
var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
- Set中存放键值,
var s2 = new Set([1, 2, 3]); // 含1, 2, 3
参考博文