携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第10天,点击查看活动详情。
Symbol
Symbol: ES6引入了新的原始数据类型 Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,类似于 字符串。
- Symbol 值是唯一的,用来解决命名冲突的问题 2、Symbol 值不能与其他数据进行运算 3、Symbol 定义的对象不能使用 for……in 循环遍历,但是可以使用 Reflect.ownKeys 来获取对象所有的键名
- Symbol.for(key) :根据给定的键 key,从运行时的 Symbol 注册表中找到对应的 symbol;找到了则返回它,否则新建一个与该键关联的 symbol,并放入全局 symbol 注册表中
ES6 提供了symbol内置属性值
- Symbol.hasInstance:当其他对象使用了 instanceof 运算符,判断是否为该对象的实例时,会调用这个方法
- 迭代symbols
symbol. iterator,返回一个对象默认迭代器的方法 - 正则表达式
symbol.math - 替换字符串
symbol.replace
迭代器(Iterator) : 迭代器是一个对象,定义一个序列,并在终止时可能返回一个值。 一种接口,为各种不同的数据结构提供统一的访问机制。
ES6 创建了新的遍历命令
- for…of 循环,Iterator 接口主要供 for…of 消费使用,for…of 遍历数组,遍历键值
- for…in 以任意顺序迭代对象的可枚举属性;for…of 遍历可迭代对象定义要迭代的数据
生成器 其实就是一个特殊的函数,用于异步编程。生成器函数使用 function * 语法编写,最初调用生成器不不执行任何代码,而是返回 Generator 迭代器,通过调用生成器的下一个方法消耗值时, Generator函数执行,直到遇到 yield 关键字
util.promisify 方法
传入一个遵循常见的错误优先的回调函数,并返回一个返回 Promise 的版本
// 引入 util 模块
const util = require('util')
// 引入 fs 模块
const fs = require('fs')
// 返回一个新的函数
let mineReadFile = util.promisify(fs.readFile);
mineReadFile('./resouce/content.md').then(value => {
console.log(value.toString())
})