《ECMAScript6入门》读书笔记(三)

Author Avatar
wshunli 11月 09, 2017
  • 在其它设备中阅读本文章

《ECMAScript6入门》读书笔记

这部分学习 ES6 中新增的数据类型。

第10章 Symbol

ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。

let s = Symbol();
typeof s // "symbol"
// 字符串参数
let s1 = Symbol('foo');
s1.toString() // "Symbol(foo)"
// 对象参数-调用 toString 方法
const obj = {
  toString() {
    return 'abc';
  }
};
const sym = Symbol(obj);
sym // Symbol(abc)

Symbol 值不能与其他类型的值进行运算;可显式转为字符串或布尔值,但不能转为数值。

let sym = Symbol('My symbol');
"your symbol is " + sym // TypeError: can't convert symbol to string
// 字符串
String(sym) // 'Symbol(My symbol)'
sym.toString() // 'Symbol(My symbol)'
// 布尔值
let sym = Symbol();
Boolean(sym) // true
!sym  // false

作为属性名的 Symbol

Symbol 值唯一,能保证对象不会出现同名的属性。

let mySymbol = Symbol();
// 第一种写法
let a = {};
a[mySymbol] = 'Hello!';
// 第二种写法
let a = {
  [mySymbol]: 'Hello!'
};
// 第三种写法
let a = {};
Object.defineProperty(a, mySymbol, { value: 'Hello!' });
// 以上写法都得到同样结果
console.log(a[mySymbol]); // "Hello!"


第11章 Set 和 Map 数据结构

第12章 Proxy

第13章 Reflect

第14章 Promise 对象

第15章 Iterator 和 for…of 循环

未完待续。。

如果本文对您有所帮助,且您手头还很宽裕,欢迎打赏赞助我,以支付网站服务器和域名费用。 https://paypal.me/wshunli 您的鼓励与支持是我更新的最大动力,我会铭记于心,倾于博客。
本文链接:https://www.wshunli.com/posts/2a9bf8cf.html