我正在寫一個使用switch語句的腳本。當我聲明變量時,它們具有默認的布爾值true,是正確的?那麼,在switch語句中使用它並不那麼重要。默認情況下,JavaScript變量的布爾值是什麼?
這裏是JavaScript,我有:http://codepen.io/anon/pen/IDLqd/
基本上,我試圖做的是問,他們更喜歡基於那進入一個window.prompt的數據是什麼類型的列表樣式用戶() 方法。如果他們輸入1,2或3,他們將根據提示中的指示獲得一個列表。但是,如果它們沒有輸入一個有效的整數,則變量validInput的布爾值爲false。
從這裏開始,運行if語句來檢查validInput變量是否具有布爾值true,如果是,則將多個變量的值輸出到屏幕,如果不是,則輸出文本說「無效的選擇「。
爲什麼代碼將if語句中的validInput值識別爲false?如果在提示窗口中輸入了不同的值,則只賦值false。爲了使這個程序正常運行,我必須在每個開關情況下顯式地將validInput值定義爲true。
這是爲什麼?有人可以解釋嗎?
謝謝! Aaron
已聲明但未設置的變量默認爲'undefined',即「falsey」,即'undefined == false','undefined!= true',但實際上不是false,即undefined!== false, 'undefined!== true'。 – Dave
是不是因爲在你的情況下執行將轉到默認設置validinput爲false,因爲它沒有事先初始化? – pj013
@Dave:我明白你在說什麼,所以從某種意義上說,它可以被認爲是空的,null被認爲是「假的」。 undefined和null有什麼區別?在用於諸如我所擁有的語句之前,總是定義變量總是一個好習慣嗎? –