毒瘤
不使用全局变量 使用块级作用域,不var return与返回值要位于同一行,否则当自动插入分号后会返回undefined 当对象的属性名与js保留字相同时,无法使用点语法,使用括号表示法 js字符是16位的,Unicode将一对字符视为一个单一的字符,而js将其认为是两个不同的字符 注意typeof对于null和正则返回'object' parseInt在遇到非数字时会停止,注意parseInt('16')和parseInt('16 jk')均返回16 +运算符会根据参数来判断是数值计算还是字符串拼接 NaN不是数字并且它不等于自身,typeof对于其返回'number',判断值是否为数值类型可用typeof value === 'number' && isFinite(value) js的数组是伪数组,不需设置维度、不会越界,但性能不如真正的数组,typeof不能区别数组与对象,可用instanceof区别 js的假值:0、NaN、''、false、null、undefined hasOwnProperty是一个function而不是运算符,不会查询原型链上的属性,可以被替换,不要使用obj.hasOwnProperty=null之类 js的默认对象不是空对象,当原型链可能对我们产生影响时,使用Object.create(null)创建纯净的对象 糟粕
不使用==,而是===;不使用!=,而是!== 不使用with语句 不使用eval语句 适当地使用continue语句能提高可读性,但性能不如重构去除continue的代码 swith中的每个case下注意break,小心穿越到下个case if语句可以接受单行语句,但此时还是应加上花括号 ++、--不够严谨,使得代码过于拥挤,不使用的话代码可以变的更整洁 使用位操作符(& | ^ ~ >> >>> <<)要小心点,&容易误写为&& function语句定义的函数存在声明提升,使用函数表达式或IIFE替代之 不要使用类型的包装对象,形如new Boolean()、new Number()、new String(),另外也应避免使用new Object()、new Array(),使用{}、[]代替 new运算符后跟的函数应以首字母大写的形式命名 js中的void是一个运算符,接受一个运算数并始终返回undefined,没有作用,应避免使用 --------------------- 作者:Kirito丷 来源:CSDN 原文:blog.csdn.net/qq_33576343… 版权声明:本文为博主原创文章,转载请附上博文链接!
|
|