一、字符串转整数 如 “1”----1
写法一:string - 0 and so on
写法二:~~string(√)
二、四舍五入
写法一:(number).toFixed(2)(四舍六入五成双)
写法二:Math.round(100*number)/100
三、进制
写法一:10000
写法二:1e4(√)
四、默认值
写法一:if()else{}
写法二:var var = var1 || "";或是三元表达式(√)
五:在if判断中判断变量是否为boolean(true or false)判断
写法一:var == false
写法二:!var(√)
六、数字转字符串
性能比较:(""+1)>String()>.tostring()>new String()
七、不要与null相比
由于javascript是弱类型的,所以它不会做任何的自动类型检查,所以改用typeof或是instanceof代替。
八、连接多个字符串
应该少使用+=,而是 s+= a + b + c ;如果是收集字符串,比如多次对同一个字符串进行+=操作,最好使用一个缓存,使用javascript数组push方法来收集,最后使用join方法连接起来。
九、比较是否相等的情况下
最好使用全等运行符。也就是使用===和!==比较好。==“转化成同一类型后的值”看“值”是否相等,进行了类型强制转换。
十、需要遍历数组
应该先缓存数组长度,将数组长度放入局部变量中,避免多次查询数组长度。例如for(var i=0,l=arr.length;i<l;i++){}
十一、尽量减少DOM调用
javascript对dom的操作会导致浏览器执行回流 (reflow)操作。在对当前DOM进行操作之前,尽可能多的做一些准备工作,保证N次创建,1次写入;在对DOM操作之前,把要操作的元素,先从当前DOM结构中删除;修改CSS类,而不是样式;
十二、Switch 语句较快
如果有一系复杂的if-else语句,可以转换成单个switch语句则可以得到更快的代码.还可以通过将case语句按最可能的到最不可能在顺序进行组织,来进一步优化switch语句.
十三、全局对象存储
在脚本中会遇到将全局对象存储为局部变量来减少全局查找,因为访问局部变量的速度比访问全局变量的速度要快。
十四、数据访问方式
javascript一般来说有四种数据访问方式:数值,变量,对象属性和数组元素。在考虑优化时,数值和变量的性能差不多,并且速度显著优于对象属性和数组元素。因此,在多次引用一个对象属性或者数组元素的时候,应该将其定义成一个变量。