小小汇总一下,目前个人遇到的,有很多网上说到的太多的就不记了,那些肯定是对的而且遇到的更多,但哪都能看到基本都熟了。
判定一个变量是否存在,如果存在执行A,不存在执行B
一般使用的方法是
typeof(xxx) != 'undefined'?statementA:statementB;
感觉每次都写 typeof(xxx) != 'undefined'
在前面即不爽又难看,在js里面undefined不是false么于是改为
xxx?statementA:statementB;
可是又报错了:ReferenceError: xxx is not defined,其实可以改成这样.
windown.xxx?statementA:statementB;
说明:如果 if(xxx)可能会报ReferenceError: xxx is not defined
的错误时,可以使用 if(window.xxx)
不要循环遍历length
一般对象都有length属性,其实length并不是一个属性,而是一个方法,每次xxx.length都会重新计算,在循环中如果先赋值会省性能
for(var i=0;i<xxx.length;i++){
statement;
}
//应该改为
for(var i=0,j=xxx.length;i<j;i++){
statement;
}
Math.random()返回从0到1之间的数,随机取值计算都需要
var tmp = Math.random();
Math.floor(tmp*100); //取0-100 之间的数
var range = max - min +1; //取min - max 之间的数,tmp乘以10000代表min-max可以为 0-9999内,如果要多的加零
return Math.ceil(tmp*10000)%range + min ;
使用 || 给变量赋值
var xxx = false || 0 || undefined || 'hello'; // xxx = hello
量少用new
JavaScript本身就是程序脚本,老给我提面向对象思想,MVC狗屁的都死开,我写代码只考虑两点,一是性能高,二是复用结构好阅读好。
这两点很多时候不能兼顾,自己去考虑平衡点去舍取,虽有偏执,担一般情况下,(轻量级的网站)不纠结于一点点的性能开销。