
javascript
the_lower
这个作者很懒,什么都没留下…
展开
-
es6中Generator函数的语法
一、Generator 函数有多种理解1、语法上,首先可以把它理解成,Generator 函数是一个状态机,封装了多个内部状态。2、执行 Generator 函数会返回一个遍历器对象,也就是说,Generator 函数除了状态机,还是一个遍历器对象生成函数。返回的遍历器对象,可以依次遍历 Generator 函数内部的每一个状态。3、形式上,Generator 函数是一个普通函数,但是有两个特征。一是,function关键字与函数名之间有一个星号;二是,函数体内部使用yield表达式,定义不同的内部状原创 2020-11-30 16:09:09 · 201 阅读 · 0 评论 -
回顾下es6模块化
ES6 模块不是对象,而是通过export命令显式指定输出的代码,再通过import命令输入。// ES6模块import { stat, exists, readFile } from 'fs';上面代码的实质是从fs模块加载 3 个方法,其他方法不加载。这种加载称为“编译时加载”或者静态加载,即 ES6 可以在编译时就完成模块加载,效率要比 CommonJS 模块的加载方式高。当然,这也导致了没法引用 ES6 模块本身,因为它不是对象。ES6 的模块自动采用严格模式,不管你有没有在模块头部加上原创 2020-11-30 11:52:06 · 87 阅读 · 0 评论 -
es6中的类和继承
class Point { constructor(x, y) { this.x = x; this.y = y; } toString() { return '(' + this.x + ', ' + this.y + ')'; }}类的所有方法都定义在类的prototype属性上面class Point { constructor() { // ... } toString() { // ... } toValue原创 2020-11-30 10:36:55 · 271 阅读 · 0 评论 -
es6函数的扩展简单总结
一、函数参数的默认值function log(x, y = 'World') { console.log(x, y);}log('Hello') // Hello Worldlog('Hello', 'China') // Hello Chinalog('Hello', '') // Hello1、指定了默认值以后,函数的length属性,将返回没有指定默认值的参数个数。也就是说,指定了默认值后,length属性将失真。(function (a) {}).length // 1(fu原创 2020-11-27 17:28:46 · 155 阅读 · 0 评论 -
关于async函数的错误处理
任何一个await语句后面的 Promise 对象变为reject状态,那么整个async函数都会中断执行,有时,我们希望即使前一个异步操作失败,也不要中断后面的异步操作。这时可以将第一个await放在try…catch结构里面,这样不管这个异步操作是否成功,第二个await都会执行。另一种方法是await后面的 Promise 对象再跟一个catch方法,处理前面可能出现的错误。async function f() { try { await Promise.reject('出错了');原创 2020-11-27 16:34:23 · 1460 阅读 · 0 评论 -
es6中promise对象简单总结
1、Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败),Promise对象是一个构造函数,用来生成Promise实例。const promise = new Promise(function(resolve, reject) { // ... some code if (/* 异步操作成功 */){ resolve(value); } else { reject(error); }});原创 2020-11-27 15:52:34 · 94 阅读 · 0 评论 -
es6数组扩展回顾
一、扩展运算符扩展运算符(spread)是三个点(…)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列console.log(...[1, 2, 3]) // 1,2,3扩展运算符的应用1、替代函数的apply方法function f(x, y, z) { // ...}var args = [0, 1, 2];f.apply(null, args); // ES5 的写法function f(x, y, z) { // ...}let args = [0,原创 2020-11-27 14:33:59 · 95 阅读 · 0 评论 -
let和const简单总结
1、暂时性死区2、没有变量提升3、let不允许在相同作用域内,重复声明同一个变量,不能在函数内部重新声明参数4、块级作用域5、允许在块级作用域中声明函数,函数声明类似于let,在es6浏览器中函数声明类似于var,推荐使用函数表达式。...原创 2020-11-27 11:22:36 · 219 阅读 · 0 评论 -
js数组方法
遍历数组的方法:forEach:对数组直接进行循环,相当于直接for 循环:arr.forEach((item,index,arr)=>{ //.....})map:对数组的每一项进行加工,加工完成之后返回一个新的数组arr.map((item,index,arr)=>{ //...})filter:过滤,将想要的内容进行行筛选,不要的内容去除,最终想要的内容返回arr.filter((item,index)=>{ //....})reduc原创 2020-08-03 21:55:24 · 122 阅读 · 0 评论 -
es6学习(上)
一. 字符串的新增方法includes():返回布尔值,表示是否找到了参数字符串。startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。et s = 'Hello world!';s.startsWith('Hello') // trues.endsWith('!') // trues.includes('o') // true这三个方法都支持第二个参数,表示开始搜索的位置。et s = 'Hell原创 2020-07-10 18:07:31 · 134 阅读 · 0 评论 -
es6学习(下)
一.Promise对象Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。const p = Promise.all([p1, p2, p3]);上面代码中,Promise.all()方法接受一个数组作为参数,p1、p2、p3都是 Promise 实例,如果不是,就会先调用下面讲到的Promise.resolve方法,将参数转为 Promise 实例,再进一步处理。另外,Promise.all()方法的参数可以不是数组,但必须具有 Iterator 接原创 2020-07-09 18:18:13 · 118 阅读 · 0 评论