javascript简写常用的12个技巧(可以大大减少你的js代码量)
前言
本文主要给大家分享了javascript简写常用的12个技巧,无论你是初学者还是资深人士,都值得一读!下面话不多说了,来一起看看详细的介绍:
1.空(null,undefined)验证
当我们创建了一个新的变量,我们通常会去验证该变量的值是否为空(null)或者未定义(undefined)。这对于JavaScript编程来说,是一个经常要考虑到的验证。
如果直接写,像下面这样:
if(variable1!==null||variable1!==undefined||variable1!==''){ letvariable2=variable1; }
我们可以使用一个更加简洁的版本
letvariable2=variable1||'';
如果你不信,可以在谷歌浏览器开发者模式下的控制台中试试!
//值为null的例子 letvariable1=null; letvariable2=variable1||''; console.log(variable2); //输出:'' //值为undefined的例子 letvariable1=undefined; letvariable2=variable1||''; console.log(variable2); //输出:'' //正常情况 letvariable1='hithere'; letvariable2=variable1||''; console.log(variable2); //输出:'hithere'
在这里要注意的是,你在调试完一组代码后要刷新下页面,或者定义不同的变量,不然会报错
不过毛票票小编更喜欢用下面的代码
if("undefined"!=typeofdownlm){ if(downlm=="soft"){ document.write('成功'); } }
判断downlm是否定义
2.数组
这个好像比较简单!
非优化代码:
leta=newArray();a[0]="myString1";a[1]="myString2";a[2]="myString3";
优化代码:
leta=["myString1","myString2","myString3"];
3.iftrue..else的优化
letbig; if(x>10){ big=true; } else{ big=false; }
简化后:
letbig=x>10?true:false;
这是三目运算,当判断条件和结果都只有一个的时候可以使用。
极大的简化了代码量!
letbig=(x>10); letx=3, big=(x>10)?"greater10":(x<5)?"less5":"between5and10"; console.log(big);//"less5" letx=20, big={true:x>10,false:x<=10}; console.log(big);//"Object{true=true,false=false}"
4.变量声明
尽管JavaScript会自动讲变量上提(hoist),使用该方法可以讲所有的变量都在函数的头部用一行搞定。
优化钱:
letx; lety; letz=3;
优化后:
letx,y,z=3;
5.赋值语句的简化
简化前:
x=x+1; minusCount=minusCount-1; y=y*10;
简化后:
x++; minusCount--; y*=10;
假设x=10,y=5,那么基本的算术操作可以使用如下的简写方式:
x+=y//x=15 x-=y//x=5 x*=y//x=50 x/=y//x=2 x%=y//x=0
6.避免使用RegExp对象
简化前:
varre=newRegExp("\d+(.)+\d+","igm"), result=re.exrc("padding01234texttext56789padding"); console.log(result);//"01234texttext56789"
简化后:
varresult=/d+(.)+d+/igm.exec("padding01234texttext56789padding"); console.log(result);//"01234texttext56789"
7.If条件优化
简化前:
if(likeJavaScript===true)
简化后:
if(likeJavaScript)
我们再来个判断非真的例子:
letc; if(c!=true){ //dosomething... }
简化后:
letc; if(!c){ //dosomething... }
9.函数参数优化
我个人倾向于使用获取对象元素的方式来访问函数参数,当然这个见仁见智啦!
通常使用的版本:
functionmyFunction(myString,myNumber,myObject,myArray,myBoolean){ //dosomething... } myFunction("String",1,[],{},true);
我喜欢的版本:
functionmyFunction(){ /*注释部分 console.log(arguments.length);//返回5 for(i=0;i译者注:原文下方有评论表示不建议用楼主的方法,使用第一种方法函数参数的顺序是可以变动的,第二种你就要小心了。
10.charAt()的替代品
简化前:
"myString".charAt(0);简化后:
"myString"[0];//返回'm'译者注:我相信用第一种方法的人已经不多了吧!
11.函数调用还可以更短
简化前:
functionx(){console.log('x')};functiony(){console.log('y')}; letz=3; if(z==3) { x(); }else { y(); }简化后:
functionx(){console.log('x')};functiony(){console.log('y')};letz=3; (z==3?x:y)();12.如何优雅的表示大数字
在JavaScript中,有一个简写数字的方法,也许你忽略了。1e7表示10000000。
简化前:
for(leti=0;i<10000;i++){简化后:
for(leti=0;i<1e7;i++){总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。
译者:Fundebug
译文:http://www.cnblogs.com/fundeb...
原文:https://hackernoon.com/12-ama...