翻译自:Introduction to JavaScript Source Maps
水平有限,有表达错误和不准确的地方,可以在回复中直接指出来,英语水平高的同学可以直接看上面的原文。
下面开始正文。
你有没有希望保持你的客户端代码可读性,更重要的是可调式性,即使你合并和压缩过代码,同时又不影响性能?现在你可以通过 Source Maps 的魔力来实现。
从根本上说,这是一种将合并/压缩后的文件映射回未构建状态的方式。当构建产品,合并和压缩你的 JavaScript 文件的同时,生成一个包含源文件信息的 Source Maps 文件。当你查询生成后的文件中某一行号和列号的位置时,你可以通过 Source Maps 来返回它所
继续阅读 »
==
Javascript有两组相等运算符,一组是==和!=,另一组是===和!==。前者只比较值的相等,后者除了值以外,还比较类型是否相同。
请尽量不要使用前一组,永远只使用===和!==。因为==默认会进行类型转换,规则十分难记。如果你不相信的话,请回答下面五个判断式的值是true还是false
:
```javascript
false == 'false'
false == undefined
false == null
null == undefined
0 == ''
```
前三个是false,后两个是true。
more
with
with的本意是减少键盘输入。比如
```
o
继续阅读 »
将近20年前,Javascript诞生的时候,只是一种简单的网页脚本语言。如果你忘了填写用户名,它就跳出一个警告。
如今,它变得几乎无所不能,从前端到后端,有着各种匪夷所思的用途。程序员用它完成越来越庞大的项目。
Javascript代码的复杂度也直线上升。单个网页包含10000行Javascript代码,早就司空见惯。2010年,一个工程师透露,Gmail的代码长度是443000行!
编写和维护如此复杂的代码,必须使用模块化策略。目前,业界的主流做法是采用"面向对象编程"。因此,Javascript如何实现面向对象编程,就成了一个热门课题。
麻烦的是,Javascipt语法不支持"类"(class),导致传统的面向
继续阅读 »
content
{:toc}
本文为慕课网 JavaScript深入浅出 JavaScript 中的 this笔记。
全局的 this
全局 this 一般指向全局对象,浏览器中的全局对象就是 window。
继续阅读 »
写在前面
Module模式最初被定义为一种在传统软件工程中为类提供私有和公有封装的方法。而在Javascript中,Module模式用于进一步模拟类的概念,通过这种方式,能够使一个单独的对象拥有公有/私有的方法和变量,从而屏蔽来自全局作用域的特殊部分。产生的结果是:函数名与在页面上其他脚本定义的函数冲突的可能性降低。
应当注意的一点是:在Javascript没有private访问修饰符因此算不得真正的私有,而是通过函数作用域来模拟私有这个概念。在Module模式内由于闭包的存在,声明的变量和方法只在该模式内部可用,但在返回对象上定义的变量和方法是可以对外访问的。
more
示例
var testModule=(functi
继续阅读 »
content
{:toc}
本文为慕课网 JavaScript深入浅出 JavaScript 面向对象笔记。
概念
面向对象程序设计(Object-oriented programming,OOP)是一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。
——维基百科
继续阅读 »
content
{:toc}
本文为慕课网 JavaScript深入浅出 JavaScript 中的闭包笔记。
闭包的例子
function outer() {
var localVal = 30;
return localVal;
}
继续阅读 »
阅读前,希望你了解javascript的原型链
P.js
项目地址
基础用法:
var Animal = P(function(animal){
animal.init = function(name){
this.name = name;
};
animal.move = function(meters){
console.log(this.name + " moved " + meters + " m.");
}
});
继续阅读 »
我们今天要讨论的主题是,大型 JavaScript 应用中一些有效的设计模式。本文基于我最近发布在 LondonJS 上同名演讲,灵感则来自于 Nicholas Zakas 之前的研究成果。
我是谁以及我为什么要撰写这个主题?
我目前是 AOL 的一名 JavaScript 和 UI 开发人员,负责规划和编写下一代面向用户的应用的前端架构。这些应用不仅复杂,而且需要一种可扩展和高复用的架构,我的职责之一就是确保这类应用中的设计模式尽可能是可持续的。
尽管在这个领域有许多比我知识渊博的专家,我也认为自己是设计模式的狂热者。先前,我基于 Creative Commons 许可写了 《Essential JavaScript Des
继续阅读 »
承接上篇 44个 Javascript 变态题解析 (上)
第23题
[1 < 2 < 3, 3 < 2 < 1]
这个题也还可以.
这个题会让人误以为是 2 > 1 && 2 < 3 其实不是的.
这个题等价于
1 < 2 => true;
true < 3 => 1 < 3 => true;
3 < 2 => false;
false < 1 => 0 < 1 => true;
答案是 [true, true]
第24题
// the most classic wtf
2 == [[[2]]]
这个题我是猜的. 我猜的 true, 至于为什么.....
both objects get converte
继续阅读 »