这篇不是教程,只是我学习时的某些小问题的总结。
1. JavaScript是一种弱类型语言,可以说是一种伪面向对象语言,各种规范不是很严谨,像结尾结束符号“;”也是可有可无,字符串之类分段也可以后加””进行换行,更不用说不用指定类型,直接var i= 333; 。

2. 跨浏览器开发时,尽量不要对浏览器版本进行测试,尽可能进行能力测试,这是各种JS框架通用做法,值得学习。

3. 对和现有JS框架共同开发时,尽可能使用自己的命名空间,因为假如不这么做,相同的命名JS将只会执行其最后定义,这和Java等语言的重写不一样的地方,使用自己的命名空间,其内部定义作用域可以限定在其内部,引用某某老师的话就是“唯一性,不共享”。

4. ()的作用,一,分割作用,和其他高级语言的用法一致,二,运算符,作用是立即执行。
举例像在jquery源码里面经常使用到的(function(){//要运行的代码})() 将function等括起来的就起到分割作用,后者着对这个匿名函数立即执行。后者经常用于闭包。

5. 与上个类型一个javascript常用语句 window.onload = init ; 与window.onload = init();区别前者将 onload事件的指针指向init函数,后者则是执行init函数,因为多了个(),所以后者是需要return的。

6. 闭包,最难理解的一个概念,定义:闭包允许你引用存在于外部函数中的变量。然而,它并不是使用该变量创建时的值,相反,它使用外部函数中该变量最后的值。其作用很大,举例,匿名自执行函数,像某些UI的初始化,只需要执行一次,就可以使用

7. 各种内置对象的简写,Object 为:{} ,就是说new Object() 与{}等价,Function简写为function(){}, Array为[]

8. 特别注意,继承的时候,js只是进行简单的复制。和java非常不一样。

9. 创建新的function对象的时候,默认生产其一个prototype对象,继承时就是调用这个对象来实现的

10. 添加静态成员,只能使用在实例中,紧记。

11. call()和apply()方法作用是将指针指向某一个对象