ES6笔记
文章平均质量分 70
沐风的心
热爱前端的开发者
展开
-
JS中==、===和Object.is()的区别
首先,先粗略了解一下这三个玩意儿:==:等同,比较运算符,两边值类型不同的时候,先进行类型转换,再比较;===:恒等,严格比较运算符,不做类型转换,类型不同就是不等;Object.is()是ES6新增的用来比较两个值是否严格相等的方法,与===的行为基本一致。下面分别详细说明一下这三个玩意儿:先说===,这个比较简单,只需要利用下面的规则来判断两个值是否恒等就行了:如果类型不同,就不相等原创 2017-01-15 15:40:50 · 7029 阅读 · 0 评论 -
运用 JS 中的各种模式创建自定义类型
虽然在 ES6 中,已经出了 class 的语法糖,貌似好像不用了解 ES5 中的这些老东西了,但是越深入学习,你会发现理解这些模式的重要性。在本文中,我会描述 7 种常用的创建自定义类型的模式:工厂模式、构造函数模式、原型模式、组合使用构造函数模式、动态原型模式、寄生构造函数模式、稳妥构造函数模式。分别给出他们的示例代码,并分析他们的利弊,方便读者选择具体的方式来构建自己的自定义类型。1. 工厂模原创 2017-07-17 20:44:27 · 1282 阅读 · 0 评论 -
15 分钟全方位了解 JS 的继承
许多 OO 语言都支持两种继承方式:接口继承和实现继承。接口继承只继承方法签名,而实现继承则继承实际的方法。由于 ECMAScript 中的函数没有签名,所以在 JS 中无法实现接口继承。ECMAScript 只支持实现继承,而且其实现继承主要是依靠原型链来实现的。所以,下面所要说的原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继承和寄生组合式继承都属于实现继承。最后的最后,我会解释 E原创 2017-07-20 20:42:18 · 383 阅读 · 0 评论 -
copyWithin的call调用实例——关于this
学习过JS的朋友,如果你想对call、apply和bind方法有更深切的了解,可以看看这篇文章。废话不多说,我们直接上代码:[].copyWithin.call({length: 5, 3: 1}, 0, 3);// { 0: 1, 3: 1, length: 5}copyWithin()方法会浅拷贝数组的部分元素到同一数组的不同位置,且不改变数组的大小,返回该数组。如果,对这条ES6语法不熟悉的原创 2017-01-15 14:38:08 · 1155 阅读 · 0 评论 -
详谈 JavaScript 数组去重 1 :实现篇
重要申明:感谢原文作者——toobug,与看原文请猛戳这里!我只是个转载者!零、引言JavaScript 的数组去重是一个老生常谈的话题了。随便搜一搜就能找到非常多不同版本的解法。昨天在微博上看到一篇文章,也写数组去重,主要推崇的方法是将利用数组元素当作对象 key 来去重。我在微博转发了“用对象 key 去重不是个好办法…”然后作者问什么才是推荐的方法。细想一下,这样一个看似简单的需求,如果要做到转载 2017-03-21 22:01:18 · 399 阅读 · 0 评论 -
异步编程中的异常处理
此文为转载的,感谢原文作者——syaning!一、引言一般情况下,我们会使用try..catch..来进行异常处理,例如:function sync() { throw new Error('sync error');}try { sync();} catch (err) { console.log('error caught:', err.message);}// e转载 2017-02-26 19:56:26 · 3074 阅读 · 0 评论 -
ES6语法摘要二
这些内容是我学习《fullstack-react-book》一书,自己翻译整理出来的要点。JSONJSON代表了JavaScript对象标记(JavaScript Object Nation)。JSON能够让我们加载一个JavaScript对象,并且我们能在一个text文件里面进行读写。三元运算符也叫“三目运算符”,语法:condition ? expression1 : expression原创 2017-01-23 23:26:31 · 431 阅读 · 0 评论 -
ES6语法摘要一
声明const是声明不变变量的一种更好的方式。 const和let并不是函数作用于的,而是块级作用域!这种经典的作用于分离帮我们避免了不可预期的bug。Array.prototype.map()map这个方法接收一个函数作为参数。这个数组中每一个元素都会调用这个函数,并且返回一个这个函数处理后的值,并将这些值依次作为一个新的数组的值。Arrow functions/this使用传统的JS原创 2017-01-18 22:59:58 · 372 阅读 · 0 评论 -
尾递归以及在浏览器中的实现
尾递归以及在浏览器中的实现这是阮一峰大神的《ES6标准入门》一书中写道的,没看过这节的童鞋可以狠戳这里。当时我就很不理解:除了最后一次调用不是尾递归,其余 y 大于 0 的时候,都是尾递归;那么,按照书“尾调用优化”上所说的,尾递归本身已经是“尾调用优化”过了,为什么还没报Uncaught RangeError: Maximum call stack size exceeded(…)——调用栈溢出这原创 2017-01-15 17:50:47 · 1063 阅读 · 0 评论 -
用 JavaScript 实现发布/订阅模式
重要申明:感谢原文作者——杠子,想看原文请戳这里!我转载了原文,修改了一些原文行文不通畅之处,并更改附上了自己的代码段,望请勿怪。挂在自己的博客下面一方面是为了收藏好文,方便自己温顾而知新;另一方面也希望更多人看到这文章。PS:原文撰写于 2016-08-11。一、发布/订阅模式简介发布/订阅模式(即观察者模式): 设计该模式背后的主要动力是促进形成松散耦合。在这种模式中,并不是一个对象调用另一个对转载 2017-10-03 10:35:29 · 4361 阅读 · 2 评论