DS.Lab筆記 - ECMA-262-5 - 严谨模式

介绍 o(╯□╰)o 严谨模式的特性 o(╯□╰)o 严谨模式下的限制 未来保留字 新增了一些保留字,它们不能在严谨模式下作为变量名使用,包括:implements,interface,let,package,private,protected,public,static,yield。 八进...

2017-07-31 13:19:37

阅读数 205

评论数 0

理解ES6: Promises

在开始写总结笔记之前,先概览下Promise的历史。它作为一种用来处理异步程序的设计模式,在ES6以前就已经被广泛实现了。流行的JS库和框架都各自实现了自己的版本,像jQuery里的Deferred对象,AngularJS。另外甚至还有一些库就是提供promise的实现的,比如Q和Bluebird...

2017-07-03 10:03:08

阅读数 287

评论数 0

理解ES6: 组件

何为组件? 组件本质上就是JavaScript文件,但是它们被加载的方式和JavaScript文件被加载的方式有所不同,我们称传统的加载和执行方式为scripts模式,组件的加载则不是这个模式,它有自己的模式(Vincent:作者没有说,或许成为module模式?这个名称可能是根据HTML里的...

2017-07-02 09:15:30

阅读数 780

评论数 0

DS.Lab筆記 - ECMA-262-5 - 文法环境概论

引言 文法环境这个机制被很多语言采纳来实现静态作用域法则,比如像闭包这样的功能。 ECMA-262-5 标准借用了这个概念,但是它更多则只是对于ES3里的静态作用域机制的进一步抽象和理论层面的完善。因此,ES3里的概念,像触发体(activation object)被替换为触发记录(activat...

2017-07-02 08:50:51

阅读数 159

评论数 0

理解ES6: 块作用域

这是Nicholas Zakas的新作,原文链接:https://github.com/nzakas/understandinges6/blob/master/manuscript/01-Block-Bindings.md var声明与变量提升现象 这是前ES6时期var的问题,变量会被JS...

2017-06-29 19:32:43

阅读数 250

评论数 0

DS.Lab筆記 - ECMA-262-5 - 属性与属性描述器

属性的种类 个 属性的特性(attribute) 命名数据属性 这类属性有四个特性,它们的默认值是: var defaultDataPropertyAttributes = { [[Value]]: undefined, [[Writable]]: false, [[E...

2017-06-10 17:15:08

阅读数 282

评论数 0

<C# 6.0 & .NET 4.6 Framework> - Note 03

Chapter 10: Delegates, Events and Lambda Expressions 這個東西叫委託。當定義一個委託的時候,編譯器在後面會聲明一個密封類,並繼承System.MulticastDelegate。它的結構也是固定的,有固定的一些方法。 public sealed...

2017-06-08 18:28:07

阅读数 329

评论数 0

<Effective JavaScript> - Note 03

Item 47:不要给Object.prototype添加可枚举的属性 归根结底,还是在说for..in的特性带来的问题。像下面的代码在Object.prototype上定义了一个方法,结果导致一些问题: Object.prototype.allKeys = function () { v...

2017-05-13 12:11:51

阅读数 301

评论数 0

<Effective JavaScript> - Note 02

Item 13:使用IIFE创建本地作用域 看来这个for循环的作用域的问题真的是很经典,在DS的博客,KS的YDtKJS系列里都有讨论过。代码如下: function wrapElements(a) { var result = [], i, n; for (i...

2017-04-23 07:01:36

阅读数 417

评论数 0

Note On <High Performance JavaScript> - 03

Chapter 8: 实践技巧 避免双重执行 这个部分讨论的是动态执行的JS代码,通过eval(),Function(),setTimeout()和setInterval()所创建的代码都会经过两次执行的过程,而这导致它们慢很多。 作者的建议是,对于eval()和Function()最...

2017-04-22 09:01:48

阅读数 246

评论数 0

关于本人将会搬家博客的声明

至对这个博客有点关注的人: 本人写博客的初衷很简单,主要是管理个人的知识和信息,软件开发这个行业的知识有其独特的性质,博大精深,结构宏大而细微处又琐碎,往往要经过一番长期的求索才能领悟一些知识,比如原理,算法等等,所以作为从业人员,记录下自己解开的知识点非常重要。这些博客其实只是个人的学习笔记...

2017-04-13 17:05:25

阅读数 308

评论数 0

Note On <High Performance JavaScript> - 02

Chapter 1: 加载与运行 在很多浏览器里,渲染界面的线程和执行JavaScript的是同一个线程,所以当执行JS的时候,浏览器就停下任何其他任务。不论是遇见内联的JS代码,还是外部加载的JS文件,浏览器都只能暂时放下跟界面有关的工作去执行JS代码。 这样设计的原因是JS代码会修改D...

2017-04-10 11:04:10

阅读数 411

评论数 0

DS.Lab筆記 - ECMA-262-3: 闭包

原文链接:ECMA-262-3 in detail. Chapter 6. Closures. ============================================================= ECMA的闭包实现 var x = 10; func...

2017-04-10 06:58:56

阅读数 353

评论数 0

DS.Lab筆記 - ECMA-262-3: 函数

原文鏈接:ECMA-262-3 in detail. Chapter 5. Functions. 函数有三种: 函数声明 函数表达式 通过函数构造器创建的函数 =============================================================...

2017-04-05 18:03:26

阅读数 201

评论数 0

Note On <High Performance JavaScript> - 01

Chapter 4: 文档对象模型(DOM)操作 一般来说,一个浏览器里面的DOM实现和JavaScript的实现是两个分开的模块,JavaScript是独立的脚本语言,它自身的规范里不包含DOM,所以JavaScript的引擎是个独立的部分,实现DOM的部分通常叫渲染引擎(rendering...

2017-04-02 17:05:26

阅读数 603

评论数 0

DS.Lab筆記 - ECMA-262-3: 求值策略

求值策略:傳值(Call by value),傳引用(Call by reference),共享(Call by sharing)。對於原始數據類型,JavaScript傳遞函數參數使用的是傳值;對於對象數據類型,JavaScript傳遞函數參數使用的是共享。

2017-03-30 10:36:03

阅读数 197

评论数 0

DS.Lab筆記 - ECMA-262-3: 作用域链

函数的生命周期:创建,调用执行。作用域的特性:闭包(Closures),經過函數構造器創建的函數對象的[[Scope]]屬性,雙重維度的作用域鏈查找:在作用域链里混合了原型链,全局上下文和eval上下文里的作用域鏈,在執行上下文的代碼運行階段對作用域鏈施加影響:with,catch会在前面插入新对象

2017-03-26 17:42:59

阅读数 314

评论数 0

DS.Lab筆記 - ECMA-262-3: ECMAScript对于面向对象语言功能的实现

原文鏈接:ECMA-262-3 in detail. Chapter 7.2. OOP: ECMAScript implementation. ============================================================= 数据类型(Da...

2017-03-24 16:45:09

阅读数 613

评论数 0

DS.Lab筆記 - ECMA-262-3: this

函数执行上下文里this的值:this的值取决于调用当前函数的方式。 内部Reference类型:变量名;函数名;函数的形式参数名;还有全局对象上面没有被定义的属性名;属性访问器。 决定this的值的规则:1.调用函数的操作符是一对括号:( )在这个操作符左边出现的记号如果是一个引用类型的值,那么...

2017-03-22 08:58:15

阅读数 512

评论数 0

<Effective JavaScript> - Note 01

Item 1:搞清楚你使用的JavaScript的版本,Item 12:理解變量提升,Item 8:避免使用全局对象,Item 49:遍历数组时,用for循环而不是for...in循环

2017-03-15 20:02:10

阅读数 435

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭