prototype 与 __proto__ 的爱恨情仇August 12, 2017

经历了上次的《JavaScript This 的六道坎》 发现编故事有点上瘾,而且记忆效果也不错哈哈,今天继续唠叨一下 prototype 与 __proto__ 的爱恨情仇。 先理解两者的一个本质区别,prototype 是函数独有的,是人为设定的;__proto__ 是所有对象都有的,是继承的。 然后来看一个两个神的故事: 首先在 ECMAScript 星球,万物起源于 the…

#Recommended#Understanding JavaScript#闲读规范

深入 ES2015 默认参数January 22, 2017

ES2015 为函数加入了方便的默认参数语法。 很方便是吧,但每件新东西总有坑。 TDZ 这个是最早见的坑,已经有不少文章指出了是个 TDZ (Temporal Dead Zone) 的问题。我找了大量资料,大部分文章基本是参考自这篇,它指出了 TDZ…

#TDZ#Understanding JavaScript#Function#Parameters#Arguments#Recommended

JavaScript this 的六道坎May 12, 2016

鉴于this风骚的运作方式,对this的理解是永不过时的话题,本文试图通过将其大卸六块来钉住这个磨人的妖精。

#Understanding JavaScript#This#Recommended

理解 PrototypeMay 14, 2015

Prototype 初看很好理解,实际上很容易混淆。而且因为不影响平时使用,一直没用动力去了解,长时间都是在一知半解的状态。 混淆 混淆主要是因为 [[prototype]] 和 prototype 名字长得太像。看回以前总结的模拟继承笔记,基本就是照搬书,压根没搞清楚。 首先是 [[prototype]], 每个对象都会有 [[prototype…

#Understanding JavaScript#Prototype#Recommended

JavaScript 有必要缓存 for 循环中的 Array.length 吗?April 21, 2015

问题 缓存 Array.length 是老生常谈的小优化。 但笔者对这种破碎的写法感到不适,也对这种写法的实际优化效果产生疑问。 且推崇这种写法的朋友似乎很多也是“前辈这么说+自己想了一下觉得有道理”。 由于 for 循环搭配 Array.length 是极度常用的 JavasScript 代码,所以非常必要搞清楚。 结论 先上笔者得到的结论:缓存 Array.lengh…

#Recommended#Understanding JavaScript#JavaScript#Array

V8 是如何实现 JavaScript Hoist 的March 29, 2015

首先 今天在知乎上看到一个问题“JavaScript有预编译吗?”,题主实际上是对 JavaScript 变量提升(hoist)机制的实现过程有疑惑。我刚知道 hoist 时也好奇过浏览器是怎么实现的,就跑去看了一下 V8 引擎的源码,做了一些笔记,现在正好趁机整理出来。 Hoist var 和 function 的 hoist 是老生常谈的问题,网上有大量资料,JavaScript 秘密花园 V…

#Recommended#Understanding JavaScript#JavaScript#闲读源码

ES6 随笔:函数与块级作用域March 09, 2015

阅读 Kyle Simpson 《You don't JS: Scope and Closures》第三章过程中的一些随笔

#Understanding JavaScript#JavaScript#Scope#闲读规范

JavaScript 函数名里面有什么?December 10, 2014

原文:What's in a Function Name?(2014-11-25) 每次为 JSHint 提交代码我都会学到一些 JavaScript 的新东西。最近的一次知识之旅中我接触到了函数对象的 name 属性。 JSHint 有一个很有意思但很少人知道的功能:代码分析报告。当以编程方式使用时,JSHint…

#Understanding JavaScript#Translation#Function#闲读规范

深入理解 JavaScript 模块模式August 05, 2014

拜读 2010 年神文,原文:JavaScript Module Pattern: In-Depth(2010-03-12) 模块模式(module pattern)是一种常见的 JavaScript…

#Understanding JavaScript#JavaScript#Translation

JavaScript 继承总结July 27, 2014

先用一个简单的 Person 类作为文章其它例子的前提。 原型链 JavaScript…

#Understanding JavaScript#JavaScript#Inheritance

JavaScript 创建对象总结July 25, 2014

JavaScript 是一门灵活的语言,就创建对象而言就有各种各样的方法。本文是《JavaScript高级程序设计》(第3版)的笔记,主要是针对各种创建对象方法之间的关系、优缺点进行梳理。每种方法相关的其它细节不是本文重点,我会标记页码。 创建单个对象 1、object 构造函数:调用 Object 的构造函数。person 的 constructor 值是 Object。…

#Understanding JavaScript#JavaScript#Object

如何正确学习 JavaScriptMay 15, 2014

正确学习 JavaScript(写给非 JavaScript 程序员和编程新手) 原文:How to Learn JavaScript Properly(2014-2-7) 学习时长:6~8周 学习前提:中学水平,无需编程经验 更新(2014-1-7) 在 Reddit 上创建了一个学习小组 January 2014, “Learn JavaScript” Study Group on…

#Translation#Understanding JavaScript#学习路线#Recommended

eat();

sleep();

code();

repeat();