欧美一区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號

主站蜘蛛池模板: 临清市| 泽库县| 抚顺县| 舟曲县| 河西区| 潮州市| 西华县| 乳山市| 大同县| 海林市| 阿拉善左旗| 南平市| 峨眉山市| 呼伦贝尔市| 涞源县| 绥宁县| 通化县| 涪陵区| 泰顺县| 同仁县| 手机| 绥棱县| 民权县| 闵行区| 临朐县| 贵阳市| 淅川县| 华容县| 武威市| 泰宁县| 民权县| 永城市| 璧山县| 高邑县| 保靖县| 喀喇| 关岭| 安宁市| 老河口市| 津南区| 叶城县|