1、在prototype上保存方法不使用prototype进行JavaScript的编码是完全可行的,例如:function User(name, passwordHash) {
this.name = name;
this.passwordHash = passwordHash;
this.toString = function() {
re...
分类:
编程语言 时间:
2015-10-21 15:57:56
阅读次数:
273
JavaScript 采用的是 词法作用域 的工作模型。定义词法化:大部分标准语言编译器的第一个工作阶段叫词法化(单词化),这个过程会对源代码中的字符进行检查,如果是有状态的解析过程,还会赋予单词意义。词法作用域:定义在 词法阶段 的作用域。词法作用域由谁决定:由你在写代码时将 变量 和 块作用域 ...
分类:
编程语言 时间:
2015-09-06 22:57:36
阅读次数:
328
名词引擎:从头到尾负责整个 JavaScript 程序的编译及执行过程。编译器:负责语法分析及代码生成。作用域:负责收集并维护由所有声明的标识符(变量)组成的一系列查询,并实施一套非常严格的规则,确定当前执行的代码对这些标识符的访问权限。LHS:赋值操作的左侧(理解为赋值操作的目标是谁,LHS 查询...
分类:
编程语言 时间:
2015-09-03 01:51:05
阅读次数:
187
一、对象
var obj = {};
obj[true] = "foo";
obj[3] = "bar";
obj[obj] = "baz";
obj["true"];
obj["3"];
obj["[object Object]"];
二、数组也是对象
var ary = ["foo", 42, "bar"];
ary.baz = "baz";
ary.length; //3
ary.b...
分类:
编程语言 时间:
2015-08-09 20:44:01
阅读次数:
134
JavaScript中的this,刚接触JavaScript时大家都在大肆渲染说其多么多么的灵巧重要,然而自己并不关心;随着自己对JavaScript一步步深入了解,突然恍然大悟,原来它真的很重要!所以,自己花费了大约2周的时间去查贴、翻阅之前读的书籍,将this的全貌展示如下。
一、this是什么--基于调用位置的上下文;调用位置不同,this值不同。
大家都JavaScript中this存...
分类:
编程语言 时间:
2015-07-25 21:38:38
阅读次数:
255
JavaScript闭包,是JS开发工程师必须深入了解的知识。3月份自己曾撰写博客《JavaScript闭包》,博客中只是简单阐述了闭包的工作过程和列举了几个示例,并没有去刨根问底,将其弄明白!
现在随着对JavaScript更深入的了解,也刚读完《你不知道的JavaScript(上卷)》这本书,所以乘机整理下,从底层和原理上去刨一下。
JavaScript并不具有动态作用域,它只有词法作...
分类:
编程语言 时间:
2015-07-12 17:34:08
阅读次数:
258
JavaScript并不是传统的块级作用域,而是函数作用域!
一、作用域
1. JavaScript引擎在代码执行前会对其进行编译,在这个过程中,像var a = 2 这样的声明会被分解成两个独立的步骤:
第一步(编译阶段):var a 在其作用域中声明新变量。这会在最开始的阶段,也就是代码执行前进行。
第二步(运行阶段):a = 2 会查询变量a(LHS查询)并对其进行赋值。
2....
分类:
编程语言 时间:
2015-06-05 10:22:46
阅读次数:
1864
最近,在读《你不知道的JavaScript(上卷)》这本书,书中详细阐述了JavaScript众多重要但经常被大家忽略的点,在此强烈推荐!!!书中,第4章讲述了“提升”,从示例出发讲述了变量和函数提升的过程,纠正了自己以前错误的理解(相信好多人理解都是错误)!
我们习惯将var a = 2;看做一个声明,而实际上JavaScript引擎不这么认为!下面几个示例让你彻底搞懂JavaScript中的...
分类:
编程语言 时间:
2015-05-30 10:47:06
阅读次数:
163