JavaScript 函数式编程指南 读书笔记
纯函数 纯函数:相同输入永远相同输出且无任何可观察的副作用。如 slice 和 splice,可以把 slice 看作是纯函数,而 splice 不是,因为 splice 修改原…
你可能知道的 JavaScript 数据结构与算法
关于数据结构与算法,终于抽时间把之前看过的这两本书《学习 JavaScript 数据结构与算法》、《数据结构与算法 JavaScript 描述》,整理出来了一部分内…
JavaScript 深入之浮点数精度
0.1 + 0.2 是否等于 0.3 作为一道经典的面试题,已经广外熟知,说起原因,大家能回答出这是浮点数精度问题导致,也能辩证的看待这并非是 ECMAScript …
JavaScript 中的 instanceof 运算符
instanceof 运算符 测试给定对象是否是给定 JavaScript 类 。 class Rectangle { constructor(height, width) { this.height = height this.width = w…
JavaScript 专题之函数记忆
函数记忆是指将上次的计算结果缓存起来,当下次调用时,如果遇到相同的参数,就直接返回缓存中的数据。举个例子: function add(a, b) { return a + b…
JavaScript 专题之递归
程序调用自身的编程技巧称为递归(recursion)。 阶乘 以阶乘为例: function factorial(n) { if (n == 1) return n return n * factorial(n - 1) } c…
JavaScript 深入之从原型到原型链
构造函数创建对象 我们先使用构造函数创建一个对象: function Person() { } var person = new Person() person.name = 'Kevin' console.log(person.n…
了解和使用 JavaScript 中的回调函数
JavaScript 中的一个常见模式是将内联函数作为参数传递给另一个函数。 例如: [1, 2, 3].forEach(function callback(v) { console.log(v) // 1, 2, 3 …
JavaScript 深入之 new 的模拟实现
一句话介绍 new,new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象类型之一,也许有点难懂,我们在模拟 new 之前,先看看 new 实…
在 JavaScript 中对数组进行排序
JavaScript 的内置 sort() 功能 常常令初学者感到惊讶。 例如,假设您对以下数组进行了排序: [3, 20, 100].sort() 输出会是什么? 您可能希望数组保…
JavaScript 中的 Maps 介绍和使用
JavaScript Map 是一个存储键/值对的对象。 你可以 get() 或者 set() 与键关联的值,或使用 has() 检查 Map 是否有给定的键。 const map = new Map() …
JavaScript 原型浅析
JavaScript 中所有的函数默认都有一个名为 prototype(原型)的公有并且不可枚举的属性,这个属性是一个指针,它会指向一个对象。 function Foo () { …
JavaScript 深入之从 ECMAScript 规范解读 this
在《JavaScript深入之执行上下文栈》中讲到,当 JavaScript 代码执行一段可执行代码(executable code)时,会创建对应的执行上下文(execution conte…
call / apply 漫谈介绍和使用
在 JavaScript 中,call/apply 是函数原型上的方法,作用是指定函数的 context 也就是所谓的 this 变量。JavaScript 中 this 的指向 不明 饱受诟病然…