随笔分类 - ES6(ECMAScript2015)
摘要:1.class 声明会提升,但不会初始化赋值。Foo 进入暂时性死区,类似于 let、const 声明变量。 const bar = new Bar(); // it's ok function Bar() { this.bar = 42; } const foo = new Foo(); //Ca
阅读全文
摘要:下面逐一为大家详解常用的ES6新特性: 1.不一样的变量声明:const和let ES6推荐使用let声明局部变量,相比之前的var(无论声明在何处,都会被视为声明在函数的最顶部) let和var声明的区别: var x = '全局变量'; { let x = '局部变量'; console.log
阅读全文
摘要:主要区别就是,如果在 then 的第一个函数里抛出了异常,后面的 catch 能捕获到,而第二个函数捕获不到 p.then(function () { throw new Error() }, function () { // won't capture this error }) .catch(f
阅读全文
摘要:前言 JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一。那么如何在JS中实现继承呢?让我们拭目以待。 ES5继承 JS继承的实现方式 既然要实现继承,那么首先我们得有一个父类,代码如下: function Animal (name) { // 属性 this.name = name ||
阅读全文
摘要:ES6为Array增加了from函数用来将其他对象转换成数组。 当然,其他对象也是有要求,也不是所有的,可以将两种对象转换成数组。 1.部署了Iterator(迭代器)接口的对象,比如:Set,Map,Array。 2.类数组对象,什么叫类数组对象,就是一个对象必须有length属性,没有lengt
阅读全文
摘要:Set 和 Map 主要的应用场景在于 数据重组 和 数据储存 Set 是一种叫做集合的数据结构,Map 是一种叫做字典的数据结构 一、 集合(Set) ES6 新增的一种新的数据结构,类似于数组,但成员是唯一且无序的,没有重复的值。 Set 本身是一种构造函数,用来生成 Set 数据结构。 new
阅读全文
摘要:一、并行运行: Promise提供了Promise.all,Promise.race,Promise.allSettled等多个Promise对象间的运行关系,如果并行运行可以用Promise.all来进行处理: const promise1 = Promise.resolve(3); const
阅读全文
摘要:刚开始看 Promise 源码的时候总不能很好的理解 then 和 resolve 函数的运行机理,但是如果你静下心来,反过来根据执行 Promise 时的逻辑来推演,就不难理解了。这里一定要注意的点是:Promise 里面的 then 函数仅仅是注册了后续需要执行的代码,真正的执行是在 resol
阅读全文
摘要:js的传统生成一个类的方法,需要定义一个构造函数,然后通过new的方式生成。 function Cat() { this.name = 'kitty'; this.color = 'yellow'; } var cat = new Cat(); js中只有对象,没有类。这样的写法和传统面向对象语言差
阅读全文
摘要:Babel 是一个 JavaScript 编译器 Babel 是一个工具链,主要用于将 ECMAScript 2015+ (ES6+,IE不支持ES6+语法,所以要支持IE,项目中引入Babel还是很有必要的)版本的代码转换为向后兼容(向后兼容 :兼容以前的;向前兼容:兼容未来的 )的 JavaSc
阅读全文
摘要:一、import 与export export(导出):用于对外输出本模块(一个文件可以理解为一个模块)变量的接口; import(导入):用于在一个模块中加载另一个含有export接口的模块。 1.一个a.js文件有如下代码: a.导出单个变量: b.导出多个变量: c.导出函数: 2.在其它文件
阅读全文