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。