vocus logo

方格子 vocus

Day05 JavaScript 條件判斷

更新 發佈閱讀 7 分鐘


做選擇的時刻

程式語言中,做選擇是非常常見的一件事。例如:判斷登入者身份是否為管理員、當前設定是否為深色模式等。想像我們有一個交易系統,我們需要判斷使用者帳戶餘額是否足夠購買Apple Vison Pro。首先,我們必須認識ifelse

if 和 else

ifelse是常見的條件判斷詞。

接下來,跟前面用console.log()印出來不一樣,這裡我們用document內建的method:write(),直接把內容印在畫面上。

raw-image
可以看見Codepen預覽區出現了文字。

可以看見Codepen預覽區出現了文字。


加上ifelse

raw-image

解讀上面的指令,只有money > 10時,才會印出”你有超過十塊錢”。其他情況,也就是money <= 10時,會印出”你有少於十塊錢”


ifelse基本上就是二選一,如果if條件成立,else就完全不會執行。


可以看見if else的結構如下:

if (條件) {
條件成立做的事
} else {
條件不成立時做的事
}

分別用{}把指令包著,條件則用()括著。

if不一定要搭配elseelse只是一種外加的保險。如果前面都符合了,就不會輪到else執行。

else if

如果要連續判斷好幾個條件,可以在if後接著用else if

raw-image

else ifelse有類似的特性,只要前面的條件符合了,就不會被執行。跟連續寫好多個if不同,那種情況每個if都會獨立判斷一次。

這邊的程式先判斷錢包裡是不是多於100元,不是的話接著判斷是不是大於10元。條件符合時,財產介於10-100之間。

條件

接下來我們來仔細談談if的條件,money > 10,這裡到底發生了什麼。

條件基本上就是true或是false兩種情況,也就是常聽見的boolean。如果條件是true,則if內的動作會執行。而在這邊,money > 10的回傳值就是true,所以會印出”你有超過十塊錢”


知道這件事後,我們可以嘗試不同的條件,像是:

raw-image

注意:=是用來把後方的值指定給前方的變數,==則用來判斷前後兩者是否相等,會回傳truefalse兩者是截然不同的


為了更好理解if的條件,我們可以寫下這行毫無意義的程式。

raw-image

可以看見()內的值,其實就是truefalse

但這行因為條件永遠都是true,所以下面這行一定會被執行,那直接寫document.write("這行一定會被執行")就好了,根本不需要if

特殊條件

我們不一定要用上面的比較符號(>, ==等),有些特別的值寫在條件裡,也會被當成truefalse處理。

undefined

如果有一個變數沒有被指定值,那麼電腦跟我們一樣,不會知道這個變數到底代表什麼。舉例來說,下方的number被宣告出來,但沒有用=指定數值。在JavaScript的世界裡,number現在的狀態就是undefined(未定義)。而undefined寫在條件裡會被判斷為false

raw-image


空的String

空的字串在條件裡也會被當成false

raw-image


0

數字0在條件裡也會被當成false,不是0的數字是true

raw-image


條件的其他應用

這些條件本質上就是truefalse,也就是boolean(布林值)。

程式語言有許多需要條件判斷的時刻,除了剛才提到的ifelse之外,常見的還有需要程式重複做一件事時。

試想,當我們要程式重複做一件事時,電腦最需要知道的就是什麼時候該停下來吧!這個時候就必須用上boolean作為條件判斷。


舉例來說,當我想在畫面上印上1-100。

我可以這樣寫:

raw-image

確實可行,但真的有點太累了。

這時候我們就可以用上loop(迴圈)。

raw-image

先定義了count = 1,然後在while的條件內寫下「只要count <= 100就一直執行」。

這邊的count++就是count = count + 1的簡寫。count就會從1倍更新成2,再變成3…

印出了一串數字。

印出了一串數字。

你會看見一串可怕的數字出現在畫面中,他的確是1-100,只是有點醜。我們幫數字加個HTML換行標籤<br>

raw-image
raw-image

稍微好看多了!


總而言之,while迴圈內也用到了跟if一樣的條件判斷,諸如此類的應用還有很多,我們暫時不必一一了解,只需要先知道這些JavaScript基本架構的意涵,未來再看見任何相似的使用情境,很快就能理解、上手。

小結

從課程開始看到這,你可能會覺得枯燥乏味、不明所以。不確定這些太簡單的介紹能怎麼樣地實作出一個現實生活中的應用程式,也可能只覺得這些陌生的語法艱澀難懂。這些都沒關係,和一開始一樣,我想要強調的是(){}===等,這些具有特殊意義的符號,他們在JavaScript裡扮演骨幹的角色。嚴格來說,到現在所有的whileif你都還沒弄明白,沒關係。只要看見每個符號在JS裡被使用的情況。接下來在學習更複雜語法或是實作時,這些內容會發揮他們關鍵的作用,讓你更容易看懂一段未知的JS程式。


明天我們回頭談談function,這次要談的是Higher-Order Function(高階方程式)。


Resource

今日Codepen

連結

Credits

關於我

我是Erkin, 一個網站開發者。
有任何疑問或是想勘誤的話歡迎聯繫。

留言
avatar-img
HCY 71的沙龍
0會員
11內容數
HCY 71的沙龍的其他內容
2024/11/04
這個單元裡我們會繼續用Codepen來製作簡單的To-Do List app。裡面會使用到基本的HTML和CSS來製作UI,別擔心會非常簡單。示範的Codpen同樣會附在今天的內容裡面,如果想看成果的話可以直接點前往。 基礎架構 為了完成這個web app,我們必須先理解HTML、CSS之間
Thumbnail
2024/11/04
這個單元裡我們會繼續用Codepen來製作簡單的To-Do List app。裡面會使用到基本的HTML和CSS來製作UI,別擔心會非常簡單。示範的Codpen同樣會附在今天的內容裡面,如果想看成果的話可以直接點前往。 基礎架構 為了完成這個web app,我們必須先理解HTML、CSS之間
Thumbnail
2024/11/04
在JavaScript裡面,Async和Await應該是搜尋熱度最高的關鍵字了,因為他們相對複雜。我們一步步討論這件事的歷史 — 它們為什麼出現,解決了什麼問題。 JavaScript的Synchronous(同步) 首先我們必須了解JavaScript執行的基本原則 — synchrono
Thumbnail
2024/11/04
在JavaScript裡面,Async和Await應該是搜尋熱度最高的關鍵字了,因為他們相對複雜。我們一步步討論這件事的歷史 — 它們為什麼出現,解決了什麼問題。 JavaScript的Synchronous(同步) 首先我們必須了解JavaScript執行的基本原則 — synchrono
Thumbnail
2024/11/04
今天要談的內容也是JavaScript很核心的部分,即使學完了先前的章節,馬上去看別人寫的JavaScript程式碼還是會看不懂,主要是因為JS開發者會採用各種簡化和替代的寫法,我們一一討論。 Anonymous(匿名) Function 首先我們要討論的是Anonymous(匿名) Fun
Thumbnail
2024/11/04
今天要談的內容也是JavaScript很核心的部分,即使學完了先前的章節,馬上去看別人寫的JavaScript程式碼還是會看不懂,主要是因為JS開發者會採用各種簡化和替代的寫法,我們一一討論。 Anonymous(匿名) Function 首先我們要討論的是Anonymous(匿名) Fun
Thumbnail
看更多
你可能也想看
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
這篇內容,將會講解什麼是「if else」,以及與「if else」相關的知識。包括if else的簡介、if、if else、else if、套娃式的if。
Thumbnail
這篇內容,將會講解什麼是「if else」,以及與「if else」相關的知識。包括if else的簡介、if、if else、else if、套娃式的if。
Thumbnail
在這一章中,我們介紹了PHP中的流程控制語句,包括if、else if、else、三元運算子、switch語句、for迴圈、foreach迴圈、while迴圈、do-while迴圈、循環嵌套以及控制迴圈的語句如break、continue、goto和return。
Thumbnail
在這一章中,我們介紹了PHP中的流程控制語句,包括if、else if、else、三元運算子、switch語句、for迴圈、foreach迴圈、while迴圈、do-while迴圈、循環嵌套以及控制迴圈的語句如break、continue、goto和return。
Thumbnail
本文介紹了在網站開發中如何運用狀態機的原則和設計方法。通過具體案例分析,以及狀態和數據的區分,詳細介紹了狀態機的設計原則和應用。讀者可以通過本文瞭解如何將狀態機應用於實際的網站開發中。
Thumbnail
本文介紹了在網站開發中如何運用狀態機的原則和設計方法。通過具體案例分析,以及狀態和數據的區分,詳細介紹了狀態機的設計原則和應用。讀者可以通過本文瞭解如何將狀態機應用於實際的網站開發中。
Thumbnail
此章節的目的是介紹Java程式語言中的流程控制結構,包括條件語句(if, else if, else)、三元運算子、switch語句,以及各種迴圈(for, foreach, while)。同時,也解釋了如何在迴圈中使用控制語句來改變程式的執行流程。每種主題都配有示例程式碼以幫助理解。
Thumbnail
此章節的目的是介紹Java程式語言中的流程控制結構,包括條件語句(if, else if, else)、三元運算子、switch語句,以及各種迴圈(for, foreach, while)。同時,也解釋了如何在迴圈中使用控制語句來改變程式的執行流程。每種主題都配有示例程式碼以幫助理解。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News