译者按下:不用if写代码是一件有趣的事情,并且,如果知道什么是数据代码,代码是数据的话?
我在教初学者编程时,喜欢给他们一些小挑战。例如,不使用if语句(或三元计算符、switch语句等)来解决编程问题。
这有什么意义?
事实上,它可以强迫你从不同的角度寻找解决方案,也许你可以找到更好的方法。
当然,使用if语句没有错误。但如果你不使用if,你可以增加代码的可读性。这一点并不是绝对的,如果你根本不用if词句,代码可读性可能会更差。这需要你根据情况来判断。
而且不使用if不仅影响可读性。这背后隐藏着更深刻的道理。通过了解本文的代码示例,您可以发现,如果您不使用if语句,您的代码将更接近代码即数据的概念。
另外,不用if语句编程也很有趣。
假设我们有整数组arrrayOfinters开发者_开发百科,我们现在需要统计其中奇数的个数:
constarayOfinters=[1,4,5,0,1,5]使用if
letconters=[1,4,5,0,1,5]使用if/stronternters=
interayOfinters=0;巧妙地除外示例2:判断工作日和周末
判断为工作日和周末,分别返回wekend和wekday。
使用if
constwekendorWekday=(inputdate)=gt;{constday=inputdate.getday();if(day===0||day====6){return在weekend上;}return在wekenday中;//ornfortry======0||day====6){return在wekekeken中;}weekend:wekday}console.log(wekendorwekday(newdate=)不使用if
constwekenday=(inputdatenday=inputday=inputdatday();returnstday:告诉我们哪天是周末,哪天是工作日。因此,要删除if语,只需将这些信息写入weekendOrWekday.labels对象中,直接使用即可。广告:如果需要监视在线JavaScript代码的错误,请免费使用Fundebug
函数,根据参数的类型进行不同的操作:
如果参数是数字,则乘以2(i.elt=gt;applet-10t=gt;如果参数是字符串,则每个字符重复2次(i.ellot=gt;heloot;如果参数是函数,则调用2次。注:为了保证可读性,本文采用意义翻译而不是直译。另外,本文版权归原作者所有,翻译仅用于学习。
精彩评论