欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

歡迎來到云服務器

技術觀察

你試過不用if寫代碼嗎?

譯者按: 試著不用 if 寫代碼,是件很有趣的事,而且,萬一你領會了什么是“數據即代碼,代碼即數據”呢?

我在教新手編程時,喜歡給他們一些小小的挑戰,比如:不使用if語句(或者三元運算符、switch語句等)解決一些編程問題。

這樣做有什么意義嗎?

事實上,它可以迫使你從不同的角度尋找解決方法,也許可以找到更好的方法。

當然,使用if語句沒有任何不對的地方。但是,不使用if的話,有時候可以增加代碼的可讀性。這一點并不是絕對的,如果完全不使用if語句的話,代碼可讀性也許會更差。這需要你根據不同情況去判斷。

而且,不用if的話不只是影響可讀性。在這背后隱含著更加深刻的道理。通過了解本文的代碼示例,你可以發現,如果不使用if語句的話,你的代碼會更加接近代碼即數據的概念。

另外,當你嘗試不使用if語句去編程時,也是一件非常有意思的事情。

示例1: 統計數組中的奇數

假設我們有一個整數數組arrayOfIntegers,現在需要統計其中奇數的個數:

const arrayOfIntegers = [1, 4, 5, 9, 0, -1, 5]; 

使用if

let counter = 0; 

arrayOfIntegers.forEach((integer) => { 

  const remainder = Math.abs(integer % 2); 

  if (remainder === 1) { 

    counter++; 

  } 

}); 

 

console.log(counter); 

console.log(counter);

不用if

let counter = 0; 

 

arrayOfIntegers.forEach((integer) => { 

  const remainder = Math.abs(integer % 2); 

  counter += remainder; 

}); 

 

console.log(counter); 

不用if時,我們巧妙地利用了奇數與偶數的特性,它們除以2的余數分別是0和1。

示例2: 判斷工作日和周末

給定一個日期(比如new Date()),判斷它是工作日還是周末,云服務器租用,分別返回”weekend”和”weekday”。

使用if

const weekendOrWeekday = (inputDate) => { 

  const day = inputDate.getDay(); 

 

  if (day === 0 || day === 6) { 

    return 'weekend'

  }  

   

  return 'weekday'

 

  // Orfor ternary fans: 

  // return (day === 0 || day === 6) ? 'weekend' : 'weekday'

}; 

 

console.log(weekendOrWeekday(new Date())); 

不用if

const weekendOrWeekday = (inputDate) => { 

  const day = inputDate.getDay(); 

 

  return weekendOrWeekday.labels[day] ||  

         weekendOrWeekday.labels['default']; 

}; 

 

weekendOrWeekday.labels = {  

  0: 'weekend',  

  6: 'weekend',  

  default'weekday'  

}; 

 

console.log(weekendOrWeekday(new Date())); 

騰訊云代理

Copyright © 2003-2021 MFISP.COM. 國外vps服務器租用 夢飛云服務器租用 版權所有 ? 粵ICP備11019662號

主站蜘蛛池模板: 墨江| 井陉县| 临沂市| 章丘市| 北宁市| 万安县| 五家渠市| 滕州市| 内黄县| 恩施市| 宁海县| 芮城县| 丹寨县| 颍上县| 长岭县| 皮山县| 平舆县| 离岛区| 大田县| 宁夏| 呼伦贝尔市| 泉州市| 韶关市| 吐鲁番市| 大宁县| 商丘市| 荔波县| 綦江县| 嘉义县| 繁峙县| 和平区| 武邑县| 侯马市| 囊谦县| 漾濞| 博罗县| 永康市| 临漳县| 鲁甸县| 桓台县| 买车|