2.9k words 3 mins.

# 模拟网络请求 网络需求: url: https://neko -> res: https://neko url: https://neko + "aimer" -> res: https://nekoaimer url: https://nekoaimer + ".com" -> res: https://nekoaimer.com # 回调地狱问题 这种代码阅读性极差 // 网络请求function requsetDate(url) {...
2.2k words 2 mins.

# async 写法与执行流程 这种情况下与默认的函数是一样的 async function foo() { console.log('foo function start~')}foo()console.log('foo function end~')// foo function start~// foo function end~# 和普通函数的区别一 返回值 # 返回一个值 async function foo() { console.log('foo function...
6.1k words 6 mins.

# 什么是生成器? 生成器是 ES6 中新增的一种函数控制、使用的方案,它可以让我们更加灵活的控制函数什么时候继续执行、暂停执行等。 平时我们会编写很多的函数,这些函数终止的条件通常是返回值或者发生了异常。 生成器函数也是一个函数,但是和普通的函数有一些区别: 首先,生成器函数需要在 function 的后面加一个符号:* 其次,生成器函数可以通过 yield 关键字来控制函数的执行流程: 最后,生成器函数的返回值是一个 Generator(生成器): 生成器事实上是一种特殊的迭代器; MDN:Instead, they return a special type of...
6.5k words 6 mins.

# 什么是迭代器? 迭代器(iterator),是确使用户可在容器对象(container,例如链表或数组)上遍访的对象,使用该接口无需关心对象的内部实现细节。 其行为像数据库中的光标,迭代器最早出现在 1974 年设计的 CLU 编程语言中; 在各种编程语言的实现中,迭代器的实现方式各不相同,但是基本都有迭代器,比如 Java、Python 等; 从迭代器的定义我们可以看出来,迭代器是帮助我们对某个数据结构进行遍历的对象。 在 JavaScript 中,迭代器也是一个具体的对象,这个对象需要符合迭代器协议(iterator...
8.6k words 8 mins.

# Promise.finally() finally() 方法返回一个 Promise 。在 promise 结束时,无论结果是 fulfilled 或者是 rejected,都会执行指定的回调函数。 这为在 Promise 是否成功完成后都需要执行的代码提供了一种方式。 这避免了同样的语句需要在 then() 和 catch() 中各写一次的情况。 如果你想在 promise 执行完毕后无论其结果怎样都做一些处理或清理时, finally() 方法可能是有用的。 # resolve 结束会执行 finally new Promise((resolve, reject) =>...
8.8k words 8 mins.

# 异步任务的处理 在 Promise 出来之前处理异步一般都是传入回调函数来解决,或者使用事件监听的方式 下面以回调函数举个栗子: function requsetDate(url, resolve, reject) { // 模拟网络请求 setTimeout(() => { if (url === 'https://nekoaimer.com') { // 成功时回调 resolve('success message') } else { // 失败时回调...
2.9k words 3 mins.

# 什么是响应式? 我们先来看一下响应式意味着什么?我们来看一段代码: 有一个初始化的值,有一段代码使用了这个值; 当 n 发生了改变 下面的数据应该重新执行一遍 就应该会输出 40 let n = 10console.log(n * 2) // 第一次执行结果为: 20n = 20//n * 2 触发响应式自动执行第二次结果为 40 上面的这样一种可以自动响应数据变量的代码机制,我们就称之为是响应式的。 #...
2.5k words 2 mins.

# 私藏工具和网站分享 # 01.JavaScript JavaScript 教程 | 通俗易懂的 JavaScript 教程 ES6 入门教程 | 通俗易懂的 ES6 入门教程 JavaScript 30 | 使用原生 JavaScript 在 30 天内完成 30 个项目 现代 JavaScript 教程 | 最近很流行的 JavaScript 教程 Node.js 学习指南 | 系统的 Node.js 学习教程和笔记系统整理 JS 代码规范 | 优秀的 JS 代码规范 TypeScript 教程 | 通俗易懂的 TypeScript 教程 TypeScript 教程 | 最好的...
6.2k words 6 mins.

# 前言声明 本章大量释义来源于 MDN # Proxy # handler.get() handler.get 方法用于拦截对象的读取属性操作。 target 目标对象。 property 被获取的属性名。 receiver Proxy 或者继承 Proxy 的对象 get 方法可以返回任何值。 const lain = { name: 'lain', age: 16}const lainProxy = new Proxy(lain, { // 获取值的捕获器 get(target, property)...
9.2k words 8 mins.

# 前言声明 本章大量释义来源于 MDN # ES7 # includes 在 ES7 之前,如果我们想判断一个数组中是否包含某个元素,需要通过 indexOf 获取结果,并且判断是否为 -1。 在 ES7 中,我们可以通过 includes 来判断一个数组中是否包含一个指定的元素,根据情况,如果包含则返回 true,否则返回 false。 const friends = ['伊莉雅', '樱岛麻衣', '入间同学', '薇尔莉特', NaN]// 在判断 +0 与 -0 时,被认为是相同的。[1, 2, 3,...