1. 驼峰式命名,类名首字母大写,变量名首字母小写。

2. 字符串转换

var strValue =4+3+1    //431
var strValue=4+3+1”    //71
 

3. String 函数转换,其中对象转换成 “[object “+className+”]” 比如 String(document) //[object HTMLDocument]

4. 双感叹 !! 可显示的将数字或字符串转换成布尔值。

5. 常量: const VALUE = 1 ;常量可以是任意值,一般为全局常量,名称习惯用大写以示区别。

6. 赋值, var nValue1,nValue2 = 3; //nValu undefined 所有二元操作符都可对字符串操作,但必须保证字符串可转换成数值。

7. 逻辑判断,基于最短路径,第一个表达式为资源消耗最少的,如需要检查变量是否为空或未定义,先进行如下检查: if ((nValue != null) && (nValue>8))

8. For…in循环会遍历对象及其原型的方法和属性,并将键名(方法及属性的名称)逐一赋给在in之前的变量。

9. 当在基本数据类型上调用对象方法时,Javascript将创建基本数据类型的对象实例,执行方法调用,并销毁该临时对象。该原则同样适用于数字和布尔等数据类型。

10. 对象方法的静态方法不是基于实例的,而是直接为对象类调用,所有的 Math 对象的方法都是静态方法 var newNum = Math.abs(oldNum);

11. Number 类的5个属性只可以通过 Number 对象进行访问:

  • Number.MAX_VALUE javascript 所能表示的最大数值
  • Number.MIN_VALUE javascript所能表示的最小数值
  • Number.NaN 表示不是数字
  • Number.NEGATIVE_INFINITY 表示负无穷
  • Number.POSITIVE_INFINITY 表示正无穷

12.函数的参数传递:值传递和引用传递:

  • 传递变量时,变量被复制后在函数中引用,函数中对变量的修改不会修改函数外部原始变量的值。
  • 传递对象时候,是引用传递,可以访问到对象的属性和方法,对对象的任何修改会反应到函数外部。
  • 传递函数的时候,带上圆括号讲立即执行函数,并将返回值传递进去。

13. 函数定义方式总结,共三种:

  • 声明式函数: Function functionname (param1,param2,…,param) { Function statements }
  • 使用函数构造器创建匿名函数(动态): var variable = new Function (“param1”, “param2”,…,”paramn”,”function body”); 解析创建的动态函数在调用后即删除,在循环中,可每次循环创建一次。
  • 函数字面量: Var func = function (params) { Statements; } 只被解析一次,除了赋值给一个变量外,与声明式函数是类似的。可以方便的实现把一个函数作为另一个函数的参数。

14. 闭包:每当javascript 应用程序创建新的作用范围时,如果需要的话将创建相关的 scoping bubble 以封装这个作用范围。这将应用在函数中,它将在自己的作用范围内执行。通常,当函数结束时该作用范围就会释放,因为不在需要了,但,当一个内部函数向外部应用程序返回一个值,并赋给一个外部变量时,内部函数的作用范围就将附加到外部函数上,然后再附加到调用它们的应用程序中,这样才能保证内部函数和外部函数的完整性。返回一个在其他函数中内部对象形式创建的函数字面量,然后将其赋值给调用它的应用程序中的一个变量,这就是闭包。

15. 对象检测的技巧在于知道要检测哪个想,以及知道如何“表示”要检测的对象(确保检测的是对像是否定义,而不是是否存在。)

16. 冒泡机制:事件由最内部元素向外一次触发事件。 事件捕获机制和事件处理机制(event-capturing 或 cascade-down):事件由最外层开始触发。

17. IE 中内存消耗问题,即使刷新页面,也会为每次连续载入页面留出相应的内存,这样,一会儿就消耗大量的内存,为了避免,要跟踪 window的 unload事件,然后调用 detachEvent 方法清理事件。

18. 修改列表, 添加: opts[opts.length] = new Option (“option Four”, “opt 4”);

19. 删除其中某个:opts[2] = null. 设置为null,会重新安排数组。 删除所有:opts.length = 0;

20. 正则表达式 http://regexlib.com

21. 访问BOM中对象可用数组索引 name属性 id属性

22. Javascript设置CSS ,属性名float是特例。IE中为style Float, 其他是cssFloat.

23. 当访问一个方法时,Jacascript引擎首先讲从最初对象实现中找相应属性/方法。如果没有找到,就会在prototype中找相应属性/方法。只有当引擎无法在全局对象实现或prototype中找到该属性或方法时,才会寻找在程序中为中添加到变量上的方法。

因为人民邮电出版社的第二版中译本翻译太差了,所以后面几张讲 ajax 的就没有记录笔记了,这些笔记也记得估计只有我看得懂,差不多都是自己理解了后再自己复述出来的,都不知道对不对。 现在在看 《javascript 高级程序设计》,这本书感觉非常好,貌似翻译也好了点,正努力啃呢。