2016.12.6晚上十點半完成JavaScript的第二章學習,看了點第三章的開頭總述,都說原生js每個知識點均可以分分鐘鍾讓你放棄,而我在努力探索着。月末的時候就回家放假了,但願在家也能夠有個小小的練習,開學來的時候能夠把js過一遍,啊還有jQuery呢!!!html
3、判斷、循環和函數(檢查用戶輸入的有效性)編程
3.1 選擇語句——if語句和swith語句(程序具備必定的邏輯判斷能力)瀏覽器
3.1.1 以下代碼:(將條件表達式的結果賦值給變量)函數
3.1.2 if語句 「若是室內溫度超過華氏80°,就打開空調」,學習
相似代碼: if (roomTemperature > 80) {roomTemperature = roomTemperature - 10;}3d
代碼塊裏僅有一條語句,也能夠把大括號省略改成: if (roomTemperature > 80) roomTemperature = roomTemperature - 10;code
必須將判斷條件置於if關鍵字以後的圓括號裏,並不在結尾處加分號。htm
大括號在js中有着特別的用途,表示用大括號括起來的多條語句是一個代碼塊,js把代碼塊視爲一條語句。可是當條件語句表達式爲true時,若是須要執行多條語句,則應該使用大括號將這些語句括起來,組成一個代碼塊。blog
以下也可這樣改:ip
當條件爲true時,執行整個代碼塊,且當條件爲true時,執行整個代碼塊。可是因爲忘記使用大括號此時條件爲true時,緊隨if的條件表達式以後的下一條語句將被執行。可是,不管if的條件判斷是true仍是false,其它代碼行老是被執行。爲了不這樣的錯誤,即便只有一條語句,也最好堅持使用大括號將其括起來,這是個良好的編程習慣,能夠避免忘記使用大括號而產生的錯誤。
以下小例:
代碼解釋:在瀏覽器打開時,提示框已經輸入了32,做爲要轉換的華氏溫度值。對於華氏32°,代碼中兩個if語句的條件判斷表達式都爲false,因此兩個if語句中的代碼都不會被執行,頁面上僅有一行輸出(32° Fahrenheit is 0° centigrade);
輸入32時會這樣顯示 ;輸入156時
聲明瞭兩個變量,其中degFahren的初始值是prompt()函數的返回值。因爲prompt()函數的返回值是一個字符串,所以使用Number()函數顯式地將該字符串轉換爲數值。
變量degCent用於保存算術表達式5/9*(degFahren-32)的結果,這個表達式將華氏度轉換爲攝氏度。
接下來document將轉換後的結果輸在頁面上
兩個if語句是新增的代碼,若是判斷的變量小於0是true則括號中的代碼將被執行,它將使用document.write()方法向頁面輸出一段文本信息;若是答案是false,則程序將直接轉到大括號結束符以後的下一行代碼執行(代碼縮進是一個良好的編程習慣,可使代碼更加清晰易讀)
3.13邏輯運算符(&& || !)左操做數和右操做數都是布爾值
一、邏輯與&&
以前咱們就介紹過左操做數和右操做數,它們一樣適用於邏輯與運算符。只不過對於邏輯與運算符來講,它的左操做數和右操做數都是布爾值,而且一般是一個條件表達式的結果。
真值表
二、邏輯或||
邏輯或運算符的左操做數和右操做數也是布爾值,其結果也是布爾值。
若是它的操做數值爲true,或者它的操做數值爲true,它的返回值就是true,不然,它將是false。
與邏輯和運算符相似,js也會避免那些對最終結果沒有任何影響的計算。若是左操做數爲true,那麼不管右操做數的結果是true仍是false,都對其最終結果沒有任何影響——最終結果都將是true。所以,當邏輯或運算符的左操做數爲true時,js將直接返回結果值true,而再也不去計算右操做數。實際上,不管是否去計算右操做數,其結果都是同樣的。
三、邏輯非!
在JavaScript中是在條件爲true時執行代碼,so若是咱們須要在條件爲false時執行代碼,就須要把false取反爲true(把true取反則爲false)。經過這樣的方法,能夠在條件爲false時執行代碼。咱們使用邏輯非運算符來取反。邏輯非運算符將返回取以後的邏輯值,對true取反將獲得false,對false取反將獲得true值。一般,咱們稱之爲邏輯非運算。
if ( ! (deCent < 100 ) ) { //some code }
邏輯非的真值表:
3.1.4 在if語句中使用符合條件
"變量degFahren的值是否大於0,但又小於100?",一個解決辦法就是嵌套的兩個if語句。嵌套指的是在一個外層if語句之中,在使用一個內層的if語句。當且僅當外層的if語句的判斷條件爲true時,內層的if語句的判斷條件纔會被檢驗。
if (degCent < 100) { if (degCent > 0) { decoument.write("degCent is between 0 and 100"); } }
上面的代碼是正確的,可是它有點冗長,而且不太直觀。JavaScript爲咱們提供了更好的解決辦法——在if語句的邏輯判斷部分使用複合條件。複合條件就是使用邏輯運算符把多個條件鏈接起來的邏輯表達式,以下:
if (degCent > 0 && degCent < 100 ) { document.write("degCent is between 0 and 100"); }
上面的if語句將首先計算變量degCent的值是否大於0,若是爲true,if語句將接着計算變量degCent的值是否小於100。當兩個條件都是true,if語句將接着計算變量degCent的值是否小於100。當兩個條件都爲true時,if語句中的代碼document.write()纔會被執行。