从今天开始,我要开始读《javascript高级程序设计(第2版)》了。在公司工作这么多天,天天写PHP,没有太多收获。在用js的时候,也总是用什么查什么,没有深层次的掌握,但是自己也懒得学,前些天看了看jQuery,现在又忘得差不多了。感谢启明同学,今天终于想通了,与其闲着,不如好好学习一下。要说,js,真是博大精深。
变量:使用var定义,则为局部变量。如果没有定义而使用,则为全局变量。
变量如果只定义,则默认为undefined。虽然没有定义和有定义无赋值的变量都是undefined类型,但是在函数(比如alert)中使用没有定义的变量是错误的。
Null类型的变量表示一个空对象指针,如果一个变量值为null,则类型为object,因为null
另外,还有几个特殊值:NaN,Infinity。
一些不同的地方:
- == 在比较之前都会发生转换, === 不会转换
- for-in循环没有顺序 比如 for (var propName in window){ document.write(propName);}
- break label完全跳出循环,continue leble跳出内部循环
- with (expression) statement
- switch(exp){case value: statement;break;...}中exp可以为任意值,case的value也不一定为常量,可以使变量或者表达式
- 理解函数参数:ECMAScript不介意多少个参数,实际上都是数组,可以用arguments对象访问,命名参数只是为了提供便利,另外arguments可以和命名参数一起使用。函数永远传值调用,不会传递引用
- 函数永远没有重载,多次定义将覆盖前面的定义