[JS] 判斷筆記. 這一篇筆記記錄了運算子跟判斷式怎麼寫 - Medium

文章推薦指數: 80 %
投票人數:10人

JavaScript 裡有好幾種類型的運算子,其中跟判斷式有關的運算子有兩種:比較運算子及邏輯運算子。

比較運算子. 比較運算子會比較兩個值,並依比較的結果回傳 true 或 false ... GetunlimitedaccessOpeninappHomeNotificationsListsStoriesWritePublishedin馬格蕾特的樹洞[JS]判斷筆記運算子、if...else、switch這一篇筆記記錄了運算子跟判斷式怎麼寫,因為題材本身就很零碎的關係,所以本篇內容會稍微不太語意化,請多包涵。

運算子JavaScript裡有好幾種類型的運算子,其中跟判斷式有關的運算子有兩種:比較運算子及邏輯運算子。

比較運算子比較運算子會比較兩個值,並依比較的結果回傳true或false。

拿來做比較的值可以是數字、字串、布林,或物件。

比較運算子總共有以下這幾個符號:等於:==不等於:!==大於:>小於:=小於等於:<=console.log(5==6);//falseconsole.log(5!==6);//true=跟==的區別=:賦予變數一個值(最常見的賦值運算子)==:比較兩個值是否相同(比較運算子)比較運算子==、!==用法例如,可以先用變數分別記錄要比較的兩個值,宣告第三個變數,用以儲存變數一==或!==變數二的值。

vara=1;varb=2;varc=a!==b;console.log(c);//true嚴格等於(===)用==去判斷兩個值是否相等時,解譯器會自動忽略型別(字串類型、數字類型)的不同,而直接判斷內容是否相等。

console.log(1=='1');//true而且解譯器會自動把數字1視作布林值的ture、把數字0視作布林值的false。

console.log(true==1);//trueconsole.log(fasle==0);//true如果使用===則能先判斷型別,再判斷內容。

console.log(1==='1');//falseconsole.log('1'==='1');//true邏輯運算子通常在判斷式裡與布林值一起使用。

包含以下三種符號:&&:and,連接兩個以上的條件,全部條件成立才會回傳true||:or,連接兩個以上的條件,只要其中一個條件成立就會回傳true!:not,可以把回傳值轉成相反的,例如下面的程式碼console.log(2>3);//falseconsole.log(!(2>3));//true注意,判斷兩個以上的條件時,條件跟條件之間必須用&&跟||連接。

我有時候會忘記這件事orzvara=1<2<3;//錯誤寫法varb=1<2&&2<3;//正確寫法判斷式判斷式是JavaScript用來控制流程的,當指定的條件成立時,就會執行後續的指令。

判斷式的語法有兩種:if...else和switch。

if…elseif後面的小括號內,為條件式;當條件成立時會執行大括號內的程式碼,稱為陳述式。

如果在條件不成立的時候,也想要執行特定的動作,就在if大括號外面使用else語法。

if(條件,由比較運算子或邏輯運算子組成){如果條件成立,就會執行這裡的程式碼;}else{如果條件不成立,就會執行這裡的程式碼;}elseif當判斷情境更複雜時,這時if...else就可以搭配elseif,用來新增條件判斷。

if(條件一){如果條件一成立,就執行選項A;}elseif(條件二){如果條件一不成立但條件成立,就執行選項B;}else{如果條件一跟二都不成立,就執行選項C;}再次提醒,括號內的條件需要透過運算子來進行兩次判斷,例如:elseif(18.5<=BMI&&BMI<25)。

或是也可以省略&&左邊的判斷運算子,為什麼呢?以這個例子來說,如果BMI小於18.5,那在第一條判斷是否小於18.5就會通過,並執行第一個條件判斷的內容了,所以如果程式跑到第二個條件,代表他一定大於18.5了。

(參考資料:條件判斷.30天JavaScript從入門到進階)if…else+elseif範例varfull=8//飽足程度1~10functioneat(food){console.log('我現在要吃'+food);}if(full<=3){eat('披薩');//飽足程度小於等於3時,呼叫帶入'披薩'作為參數的eat函式}elseif(full<=7&&full>3){eat('沙拉');//飽足程度小於等於7且大於3時,呼叫帶入'沙拉'作為參數的eat函式}else{console.log('我超飽不想吃東西');}switch的用法switch跟if...else很像,都是拿來設條件、比對、跑結果用的,但因為switch會先將所有條件(case)先跑過一遍,找到符合的條件才會執行程式碼,因此網頁渲染的效能比較好。

通常是有很多條件的時候才需要用到switch。

switch(參數){case條件一:參數與條件一符合,執行相關的程式碼;break;//每個case:後方都會補上break;來阻止已完成的區塊在後方繼續執行case條件二:參數與條件二符合,執行相關的程式碼;break;default:如果沒有任何一個case:符合參數,就執行相關的程式碼;break;}switch後面小括號內的參數,是跟各條件比較的基準,如果參數剛好與case後面的值一樣,就面執行case區塊內的指令。

而default的區塊就是當上面所有case都不成立的時候會執行。

每個case區塊都應該加上break作為結束,break的用途是停止執行後面的程式碼。

如果不加break,switch中的每一個case都會執行。

下一篇:[JS]迴圈筆記medium.com--Morefrom馬格蕾特的樹洞這裡有技術文章,以及公職與工程師的職涯心得。

Readmorefrom馬格蕾特的樹洞AboutHelpTermsPrivacyGettheMediumappGetstartedGretaMa482Followers正一類,大學一畢業就去當公務員,中間因緣際會轉職為前端工程師,之後又再任公職。

這就是終點了嗎?我不那麼覺得。

FollowMorefromMediumMaddyJavaScriptWeekly():Week1NabilArtaPushnotificationinbrowserandhowtouseitusingJavascriptMarcusJonesGiveALittleToGitEvenMoreYadabSdJavascriptmapvsforEachvsfiltervsfindHelpStatusWritersBlogCareersPrivacyTermsAboutKnowable



請為這篇文章評分?