JS 奇技淫巧(随时补充)
总结了几个在学习工作中碰到的,做下记录,也欢迎大家指证,补充.
1.在判断typeof x=='undefined'时,可以采用typeof x>'t'代替,比较一个字母比逐字比较更快.
2.if(x){a=0},最简单的if语句,如果X存在则给a赋值,可用x&&a=0;代替,处理关系运算符比条件运算符更快.
3.for循环,i--比i++更快.
4.变量转换的快速方法:var myVar = "3.14159",
str = ""+ myVar,// to string
int = ~~myVar, // to integer
float = 1*myVar, // to float
bool = !!myVar, /* to boolean - any string with length
and any number except 0 are true */
array = [myVar]; // to array
5.在使用function(){}作为函数的参数时,比如说定义了function fn(a){a()},执行fn(function(){alert(1)})时,可以把{}省略,即fn(function() alert(1));(大部分编辑器会报错)
6.n===-1可简化为!~n; n!==-1可简化为~n;
7.通过Array.prototype.slice.call(obj,0)可迅速转化为数组.
8.立即执行函数的装X写法:void function()();
9.数组是引用数据类型,a=[1],b=a,更改b的话,a数组也会更改,假如只需要更改b数组而a数组不变,最高效的方法是b=a.concat();
...
欢迎大家补充.
吐槽一下:绝对不建议大家使用这些写法,只是为了大家看大牛们的代码时不至于纠结,仅此而已.