当前位置: 首页 > 科技观察

写了这么多年JavaScript,还不知道这些技巧?

时间:2023-03-15 20:39:55 科技观察

相当一部分人有五年的JavaScript经验,但实际上可能只是一年的经验被重复使用了五次。同样的逻辑和功能,有的人可以写出意大利面条式的代码,有的人两三行简洁明了的代码就搞定了。简洁的代码不仅易于阅读,而且减少了复杂的逻辑和出错的可能性。本文介绍一些常用的JavaScript简化技巧,可以在日常开发中使用。1.简化条件表达式这种情况经常会遇到。判断一个变量是否为指定值,常规的逻辑表达式会很长。我的做法是把这些值放到一个数组中://toolonglogicalexpressionif(x==='abc'||x==='def'||x==='ghi'||x==='jkl'){//其他逻辑}//简写if(['abc','def','ghi','jkl'].includes(x)){//其他逻辑}2.简化if...elseif...else是如此普遍,以至于许多人忘记了还有其他方法可以评估条件。比如简单的变量赋值,就没有必要使用这么冗长的语句,一行表达式就可以了://新手写法lettest=boolean;if(x>100){test=true;}else{test=假;}//简写表达式lettest=(x>10)?true:false;//更直接lettest=x>10;console.log(test);三元表达式可以进行复杂的条件分支判断,但是牺牲了一些可读性:letx=300,lettest2=(x>100)?'greater100':(x<50)?'less50':'between50and100';console.log(test2);//“大于100”3。经常看到这样的代码在判断空和赋默认值的时候CodeReview,当判断变量不为null、undefined、''时,给第二个变量赋值,否则给一个默认值:if(first!==null||first!==undefined||first!==''){letsecond=first;}//简写letsecond=first||'';4.速记循环遍历for循环是最基本的,但是有点繁琐。您可以使用for...in、for...of或forEach代替://Longhandfor(vari=0;i(Math.PI*diameter;)7.简化分支条件语句又是你,if...elseif...else!与switch类似,也可以使用key-value的形式简化://Longhandif(type==='test1'){test1();}elseif(type==='test2'){test2();}elseif(type==='test3'){test3();}elseif(type==='test4'){test4();}else{thrownewError('Invalidvalue'+type);}//Shorthandvartypes={test1:test1,test2:test2,test3:test3,test4:test4};varfunc=types[type];(!func)&&thrownewError('Invalidvalue'+type);func();8.将字符串重复N次有时出于某种目的需要将字符串重复N次,最笨的方法就是使用for循环拼接。其实更简单的方法是使用repeat://longhandlettest='';for(leti=0;i<5;i++){test+='test';}console.log(str);//testtesttesttesttest//速记'test'.repeat(5);9.指数计算可以节能、省碳、环保。//longhandMath.pow(2,3);//8//shorthand2**3//810。数字分隔符这是一个比较新的语法,由ES2021提出。数字字面量可以用下划线分隔,提高了数字的大小可读性://旧语法letnumber=98234567//新语法letnumber=98_234_567没什么好总结的,随便用。本文转载自微信公众号“1024翻译站”,可通过以下二维码关注。转载请联系1024翻译站公众号。