分类: JavaScript

动手实现一下 JavaScript 中的 call, apply 和 bind

在 JavaScript 中 call、apply、bind 都有些类似,但又有些不同,它们都用于改变 this 的指向,其中 call 和 apply 会直接执行函数,而 bind 会返回一个新函数,另外 call 和 apply 的传参方式也有些不同,下面就来分别模拟实现一下。

动手实现一下 JavaScript 中的 call, apply 和 bind

JavaScript Decorators

Decorators,即装饰器的意思,是 JavaScript stage-2 阶段的一个草案,它作用于一个类或者类的方法和属性。 由于还处于草案阶段,因此我们使用装饰器还需要通过 babel 并配合 babel-plugin-transform-decorators-legacy 插件来编译。

JavaScript Decorators

自己动手实现一个 Promise

Promise 是什么?Promise 是一种异步编程的解决方案,代替了以前在异步函数中传入回调函数的写法,解决了深层嵌套引起的回调地狱问题。关于 Promise 的实现也有很多种,如 ES6 Promise, Bluebird, Q 等,但它们都遵循了一种规范,那就是 Promise/A+ 规范。那么今天我们就按照这个规范自己也实现一个 Promise。

CoffeeScript 中的运算符及别名

CoffeeScript 有它自己的一套运算符及别名,用来代替 JavaScript 中的一些写法。 例如 == 和 !=,它们在 JavaScript 中表达的意思不够准确,并且跟其它语言中的意义也不一致,CoffeeScript 会把它们分别解析为 === 和 !==,另外CoffeeScript 也提供了别名,例如 is 表示 ===, isnt 表示 !==。

CoffeeScript 中的运算符及别名

JavaScript 数组乱序

所谓数组乱序,其实就是给定一个数组,然后通过处理后返回一个各项顺序打乱的新数组。也就是说处理的时候需要给数组中的每一项分配随机的下标,首先来看一个例子:

JavaScript 数组乱序