发表于: 2017-03-27 01:24:44
1 1320
今天完成的事情:
今天本来准备把《JavaScript语言精粹》这本书读完的,结果读到中间发现这本书虽然比较薄,但是内容却不少,或者说比较深。书里的句子对我来说还是不太容易理解,我读到第四章函数就读不下去了,不过这本书结尾部分的附录内容还是比较有用且好理解的。
明天计划的事情:
继续看书学习做笔记,郑州分院有几位师弟已经开始进入js的学习阶段了,而且很多以前都没有计算机方面的基础,或许可以就他们学习中的问题给出一些建议,从CSS跳到Js还是差距蛮大的。
遇到的问题:
所学知识还是太少,导致看语言精粹这类书读不懂,有些名词无法理解,如上下文,标配对象,原型对象之类的,我还是不能好高骛远,踏踏实实的按部就班的学吧。
收获:
JavaScript的问题特性:
1.全局变量
全局变量在微型程序中可能会带来方便,但随着程序越来越大,它们会变得难以管理,一个全局变量可以被程序的任何部分在任意时间修改,它们使得程序的行为变得复杂,降低了程序的可靠性。如果某些全局变量的名称和同一个程序中运行的子程序中的变量名称相同,那么它们会相互冲突,导致程序无法运行,且难以调试。
最小化使用全局变量的方法之一是只创建一个唯一的全局变量:
var MYAPP = {};
将该变量变成你的应用的容器:
MYAPP.stooge = {
first-name : "Joe",
last-name: "Howard"
};
将全局性的资源都纳入一个名称空间之下,你的程序与其他应用程序、组建或者类库之间冲突的可能性就会显著降低。
使用闭包来进行信息隐藏的方式也是一种有效减少全局污染的方法。
2.自动插入分号
Js有一个自动修复机制,他会通过自动插入分号来修正有缺损的程序。但是这可能会掩盖更为严重的错误。如果一个return语句返回一个值,这个表达式的开始部分必须和renturn位于同一行:
return
{
status: true
};
自动插入分号会让他鞭策和那个返回undefined,这导致程序被误解,却没有任何警告提醒。
3.==
==在两个运算数不是相同类型时会试图去强制转换值的类型,转换的规则复杂且难以记忆。且==运算符对传递性较为缺乏,所以在编程中应尽量使用===和!==。
4.continue语句
continue语句跳到循环的顶部,一段代码通过重构移除continue语句后,性能总会得到改善。
评论