js奇淫巧技

var number  = "3",
""+ number//  等于number.toString()
~~number  //  等于parseInt(number)
1*number  //  等于parseFloat(number)
!!number  //  等于Boolean(number)
[number]  //  等于new Array(number)
1e3       //  等于1*Math.pow(10,3) == 1000
typeof a == "undefined" // 判断a变量是否存在


var _tmpStr="";
var str = "this is big string...";
for (i=0; i<100; i++){
    _tmpStr += a;
}
a = _tmpStr;

因为是字符串操作,使用直接量,每次循环都要操作大字符串,非常笨重,效率低下。如果改用引用量操作,即通过数组:

var str = "this is big string...";
var _tmpArray = [];
for (i=0; i<100; i++){
    _tmpArray[i]=str;
}
str = _tmpArray.join("");

做个测试,假如有个100k的字符串,用直接量连接操作,我的机器上需要约2600毫秒,如果用数组连接,则需要150毫秒,效率相差十几倍。

以上片段来自脚本之家和百度

发表评论

电子邮件地址不会被公开。 必填项已用*标注