写在前面:经典巨著,还需从头啃起。可以大略分为三个部分,1~7章理论基础,主要是ECMAscript,8~13章是BOM/DOM的部分,14~25章均为javascript与其他技术的结合与应用,包括了一些新兴的API。笔记不是涵盖全部的,是自己觉得可能会用到的一些实用技巧和不熟悉的地方。
Professional-JavaScript-for-Web-Developers-3rd-Edition代码下载地址在这里
笔记自用,欢迎转载。错漏难免,请多指正。
第一部分
—————————————————————————
第一章简介,涉及到了javascript的前世今生和浏览器大战等等,可以看到这本书的风格是比较详(LUO)尽(SUO)的……
第二章 在HTML中使用JAVASCRIPT
1 延迟脚本defer和异步脚本async
<script defer=”defer” src=”example.js”></script>
<…..async=”async”>
规范中,defer 按脚本先后次序执行,脚本执行before DOMcontentloaded,async不按次序,执行在页面load之前,不一定before DOMcontentloaded
2 解决javascript中的<被误读为标签
用HTML实体(a<b)
用cdata片段包裹+注释
<script>
//<![CDATA[
…
if(a<b)
…
]]//
</script>
3
<noscript>
</noscript>
第三章 基本概念
- ECMAScript区分大小写,驼峰格式
- 如果严格格式,“use strict”
良好的代码规范,先声明再赋值,不要因为语言灵活就瞎搞
八进制前面加0,不超过08,严格模式无效。十六进制加0x
var intNum=079;
var hexNum=0xA;
科学计数法 var floatNum=2e108 2*10的8次方
浮点最高精度17位,不要测试,用的IEEE754
isNaN() isFinite()
function isNaN() is also suitable for an object.
First step: isNaN(value of(thisobject))
If true, toString(thisobject)
parseInt看第一个非空格字符决定是不是NaN 对空字符串是NaN。看进制格式。
Var num=parseInt("AF”,16); //16进制
多数情况下,始终将10作为第二个参数
parseFloat只解析十进制 科学计数法有效
toString() 方法,可以用base值作为参数来决定X进制
var num=10;
alert(num.toString(2)); //output ”1010”
null和undefined没有toString,但是有String()方法返回字面量。
Var myObject=prederredObject || backuoObject
避免对象的值为NULL
大小比较与==都是 先转化为数值。不管> < == 遇到NaN都是false
推荐用全等===操作符
var num=(5,1,2,3,0); //num==0
逗号返回最后一项。
Label加标签,被break/continue引用
Outermost:
For(){for(){…break outermost;}…}
不建议使用with
switch(true){
case 1<0:
alert(“1<0==true”);
break;
….
}
每个case返回一个布尔值,switch为全等。
函数要么始终返回一个值,要么干脆不返回,不要有时候return 有时候没有,会调试不便。
参数类似数组,arguments[i]表示传进来的第i个参数,如果在函数内部修改会重写参数的值(严格模式下不可以)。arguments.length参数个数,条件控制可以类似重载。没传值的参数自动变为undefined.