Open lyyourc opened 10 years ago
为什么我要从awful parts看起呢,因为我个人是比较喜欢JS的,可能是接触的language不多吧,未能了解到其他language的good parts。所以,我就想想看看究竟有多awful。然后再来慢慢欣赏good parts.
首先,通过内容简介和目录,我了解到了,这本书主要是从几个方面来讲述JS的good parts,以及awful & bad parts。
然后,我看了译者序。讲得很好。
还有更多讨论JS的bad parts: http://javascript.crockford.com/code.html http://bonsaiden.github.io/JavaScript-Garden/ http://www.ruanyifeng.com/blog/2012/04/javascript_programming_style.html
Object是通过引用来传递的,而不是pure copy。
var a = { }, b = { }; // a和b引用的都是不同的object
var c = a; // a和c引用的是the same boject
当闭包的外部函数调用结束后,他的scope就没了。然后闭包被调用,但是此时的闭包仍然可以使用其外部函数的parameters or variables。因为,闭包的scope里还保存着外部函数的变量对象,至到闭包调用结束,或者被assigned null。
我之前一直都不明白<JavaScript高级程序设计>中关于闭包和变量的那个example。现在终于知道原因了,是因为我没彻底地弄懂代码execute的详细process,之前只是含糊地一笔带过。更可恶的是,那个demo在循环中创建了function,这引起了一定的混淆。 inspiration: http://www.zhihu.com/question/20479109 http://www.zhihu.com/question/20019257 本书的closure部分。
var colors = [ ];
我们很容易知道,数组的length可以是空的,但是我们可以自由地操控他。
由于我一开始看的书就是:
和<高级JavaScript程序设计>,因此代码风格方面的问题不大,养成了一个良好的habit。这也是为什么一开始就要看好书的reason之一吧。function compare(value1, value2) {
if (value1 > value2) {
return 1;
} else if {
return -1;
} else {
return 0;
}
}
Literal(字面量), 花括号括起来的"名/值“对
helps me since I hadn't know literal block
in mustache.js instruction until I saw your note!~
Thanks XuFei. Give me five~