|
| 1 | +#JS 基本解說,變數型別,宣告 |
| 2 | + |
| 3 | +在進入 node.js 開發之前,還是必須要說, node.js 雖然稱為 node.js ,不過本質在開發上還是在寫 JavaScript。對於 JavaScript 的基本認知還是要有。 |
| 4 | +##基本型態 |
| 5 | + |
| 6 | +JavaScript 有以下幾種基本型態。 |
| 7 | + |
| 8 | +* Boolean |
| 9 | +* Number |
| 10 | +* String |
| 11 | +* null |
| 12 | +* undefined |
| 13 | + |
| 14 | +變數宣告的方式,就是使用 var,結尾使用『;』,如果需要連續宣告變數,可以使用 『,』 做為連結符號。 |
| 15 | + |
| 16 | + // 宣告 x 為 123, 數字型態 |
| 17 | + var x=123; |
| 18 | + |
| 19 | + // 宣告 a 為456, b 為 'abc' 字串型態 |
| 20 | + var a=456, |
| 21 | + b='abc'; |
| 22 | + |
| 23 | +##布林值 |
| 24 | + |
| 25 | +布林,就只有兩種數值, true, false |
| 26 | + |
| 27 | + var a=true, |
| 28 | + b=false; |
| 29 | + |
| 30 | +##數字型別 |
| 31 | + |
| 32 | +Number 數字型別,可以分為整數,浮點數兩種, |
| 33 | + |
| 34 | + var a=123, |
| 35 | + b=123.456; |
| 36 | + |
| 37 | +##字串型別 |
| 38 | + |
| 39 | +字串,可以是一個字,或者是一連串的字,可以使用 ‘’ 或 “” 做為字串的值。 |
| 40 | + var a="a", |
| 41 | + a='abc'; |
| 42 | + |
| 43 | +##運算子 |
| 44 | + |
| 45 | +基本介紹就是 +, -, *, / |
| 46 | +邏輯運算就是 && (and), || (or), ^ (xor), |
| 47 | +比較式就是 >, <, !=, !==, ==, ===, >=, <= |
| 48 | + |
| 49 | +##判斷式 |
| 50 | + |
| 51 | +這邊突然離題,加入判斷式來插花,判斷就是 if,整個架構就是, |
| 52 | + |
| 53 | + if (判斷a) { |
| 54 | + // 判斷a 成立的話,執行此區域指令 |
| 55 | + } else if (判斷b) { |
| 56 | + // 判斷a 不成立,但是 判斷b 成立,執行此區域指令 |
| 57 | + } else { |
| 58 | + // 其餘的事情在這邊處理 |
| 59 | + } |
| 60 | + |
| 61 | +整體架構就如上面描述,非 a 即 b的狀態,會掉進去任何一個區域裡面。 |
| 62 | +整體的判斷能夠成立,只要判斷轉型成 Boolean 之後為 true,就會成立。 |
| 63 | +大家可以這樣子測試, |
| 64 | + |
| 65 | + Boolean(判斷); |
| 66 | + |
| 67 | +##應用 |
| 68 | + |
| 69 | +會突然講 if 判斷式,因為,前面有提到 Number, String 兩種型態,但是如果我們測試一下,新增一個 test.js |
| 70 | + |
| 71 | + var a=123, |
| 72 | + b='123'; |
| 73 | + |
| 74 | + if (a == b) { |
| 75 | + console.log('ok'); |
| 76 | + } |
| 77 | + |
| 78 | +編輯 test.js 完成之後,執行底下指令 |
| 79 | + |
| 80 | + node test.js |
| 81 | + // print: ok |
| 82 | + |
| 83 | +輸出結果為 ok。 |
| 84 | +這個結果是有點迥異, a 為 Number, b 為 String 型態,兩者相比較,應該是為 false 才對,到底發生什麼事情? |
| 85 | +這其中原因是,在判斷式中使用了 == , JavaScript 編譯器,會自動去轉換變數型態,再進行比對,因此 a == b 就會成立,如果不希望轉型產生,就必須要使用 === 做為判斷。 |
| 86 | + |
| 87 | + if (a === b) { |
| 88 | + console.log('ok); |
| 89 | + } else { |
| 90 | + console.log('not ok'); |
| 91 | + } |
| 92 | + // print: not ok |
| 93 | + |
| 94 | +##轉型 |
| 95 | + |
| 96 | +如果今天需要將字串,轉換成 Number 的時候,可以使用 parseInt, parseFloat 的方法來進行轉換, |
| 97 | + |
| 98 | + var a='123'; |
| 99 | + |
| 100 | + console.log(typeof parseInt(a, 10)); |
| 101 | + |
| 102 | +使用 typeof 方法取得資料經過轉換後的結果,會取得, |
| 103 | + |
| 104 | +##number |
| 105 | + |
| 106 | +要注意的是,記得 parseInt 後面要加上進位符號,以免造成遺憾,在這邊使用的是 10 進位。 |
| 107 | + |
| 108 | +在本篇中,先講解變數的宣告,以及 Boolean, Number, String 幾種形態,以及 if 判斷式怎麼使用,在 JavaScript 這種弱型態的語言當中,有些時候會因為自動轉型造成 debug 的麻煩,因此也稍微提到在實際開發可能會遇到的問題。 |
| 109 | +前面基本型態有提到 null, undefined ,明天我們繼續聊聊這兩種在 JavaScript 型別中,難以判定的型態。 |
0 commit comments