var
定义。 var
只能声明一个变量。 即用即声明
,不得在函数或其它形式的代码块起始位置统一声明所有变量。 ===
。仅当判断 null 或 undefined 时,允许使用 == null
。 switch
代替 if
。 else
块后没有任何语句,可以删除 else
。 length
。 typeof
。对象类型检测使用 instanceof
。null
或 undefined
的检测使用 == null
。 string
时,使用 + ''
。 number
时,通常使用 +
。 string
转换成 number
,要转换的字符串结尾包含非数字并期望忽略时,使用 parseInt
。 parseInt
时,必须指定进制。 boolean
时,使用 !!
。 number
去除小数点,使用 Math.floor / Math.round / Math.ceil
,不使用 parseInt
。 '
。 数组
或 +
拼接字符串。 {}
创建新 Object
。 属性
均可以不添加引号,则所有 属性
不得添加引号。 属性
需要添加引号,则所有 属性
必须添加 '
。 .
。 for in
遍历对象时, 使用 hasOwnProperty
过滤掉原型中的属性。 []
创建新数组,除非想要创建的是指定长度的数组。 for in
。 sort
方法。 .length = 0
。 50
行以内。 6
个以内。 options
参数传递非数据输入型参数。 null
。 IIFE
避免 Lift 效应
。 new Function()
的形式。 constructor
。 constructor
的正确性。 事件名
必须全小写。 event
参数。如果事件需要传递较多信息,应仔细设计事件对象。 eval
函数。 eval
函数。 new Function
执行动态代码。 with
。 delete
的使用。 delete
可能产生的异常。 AMD
作为模块定义。 id
必须符合标准。 id
和 dependencies
。 return
来返回模块定义。 require
必须以 async require
形式调用。 local require
,不允许使用 global require
。 require
必须使用 relative id
。 factory
开始处统一 require
。 document.getElementById
获取,避免使用document.all
。 context.getElementsByTagName
获取。 children
。避免使用childNodes
。 getComputedStyle
或 currentStyle
。 DOM
时,尽量减少页面 reflow
。 DOM
操作。 addEventListener / attachEvent
绑定事件,避免直接在 HTML 属性中或 DOM 的 expando
属性绑定事件处理。 addEventListener
时第三个参数使用 false
。