前言
JavaScript 最早只可以寫在 瀏覽器 上面,你可以透過 JavaScript 去操控 瀏覽器 上面看到的東西。
- 比如說 表單驗證 就是利用 JavaScript 去檢查表單送出時,有沒有尚未填完的欄位。如果沒有填寫完整,就可以利用 JavaScript 在瀏覽器上動態加上紅色的警示 請填完此欄位再送出 。
直到 Node.js 這個執行環境出現之後,你可以在自己的電腦上面用 node.js 來執行 JavaScript。
- 在 瀏覽器 上執行 JavaScript,就只能使用瀏覽器有提供的指令
- 在 Node.js 上執行 JavaScript,就只能使用 node.js 有提供的指令
JavaScript 一定要有一個執行環境,不管是在 瀏覽器 還是在 Node.js,
只有在執行環境底下才可以讓 JavaScript 運行。
事實 & 雄辯
程式裡面很常用到的就是判斷 true
跟 false
。
在 JavaScript 裡,代表 false
的就只有幾個:
0
: 零
-0
: -零
NaN
: 不是數字 Not a number
(這邊的 不是數字只是解釋,但是 NaN 本身的資料型態還是 數字 )
null
: 空值
undefined
: 有宣告變數但是沒有賦值
""
: 空字串
邏輯運算
&&
:且
- 兩邊通通都要符合才行。
- 全部都為
true
時,會回傳true
, 否則回傳false
。
true && true > true // 兩邊都符合 true ,所以輸出 true
true && false > false // 兩邊沒有符合 ,所以輸出 false
false && true > false // 兩邊沒有符合 ,所以輸出 false
false && false > false // 兩邊都符合 false ,所以輸出 false
||
:或
- 只要其中一邊符合
true
就會回傳true
, 除非全部都是false
才會回傳false
。
true || true > true // 有任一邊符合 true,所以輸出 true
true || false > true // 有任一邊符合 true,所以輸出 true
false || true > true // 有任一邊符合 true,所以輸出 true
false || false > false // 通通不是 true,所以輸出 false
短路性質
- 因為
&&
一定要全部符合才會是true
- 所以一但第一個值為
false
,就不用判斷第二個值了,直接回傳false
- 所以一但第一個值為
- 因為
||
只要其中一個值為true
就會回傳true
- 所以一但第一個值為
true
,就不用判斷第二個值了,直接回傳true
- 所以一但第一個值為
二進位
2^i | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 | 數字 |
---|---|---|---|---|---|---|---|
值 | 32 | 16 | 8 | 4 | 2 | 0 | |
範例 | 1 | 0 | 1 | 1 | 0 | 0 | 44 |
我們可以把 1
跟 0
當作燈泡的開關,
1
代表亮
0
代表暗
所以101100
可以看成亮暗亮亮暗暗
,接著我們只要看亮
的燈泡代表數字多少,然後加在一起就行囉。
範例:101100 去看表格,
第一個亮的燈泡是 32
第二個亮的燈泡是 8
第三個亮的燈泡是 4
那我們把數字加起來 : 32 + 8 + 4 = 44
所以 101100 就代表 44 這個數字。
補充:如何將
正數
轉換為負數
:- 把
1
跟0
先全部顛倒過來,再把結果+1
範例:000101100 是 44 1 跟 0 顛倒過來 > 111010011 把數字 +1 > 111010011 + 1 = 111010100 這樣 111010100 代表的就是 -44
- 把
負數
轉換回正數
,就把數值先-1
再把1
跟0
顛倒回來。
- 把
位元運算
<< n
:把所有位元向左移動 n 次
- 範例
0011010 << 1
會得到0110100
(向左位移一位最後面補一個0) - 範例
0011010 << 2
會得到1101000
(向左位移兩位最後面補兩個0)
每向左移動一次,整個數值就會變為原來的 2倍。
>> n
:把所有位元向右移動 n 次
- 範例
0011010 >> 1
會得到0001101
(向右邊位移一位最後面那位捨棄)
每向右移動一次,整個數值就會變為原來的 1/2倍
位元運算下的 & |
若是看到 &&
跟 ||
,我們就要直覺把左右兩邊換成 true 跟 false 來判斷。
若是看到 &
跟 |
,我們就要直覺把兩邊換成 二進位 的數值,再把每一位的值分別開來判斷。
- 舉個例子:
2 && 4
符合第一種情況,也就會轉換成true && true
,會回傳4
(可參考前面的短路性質)2 & 4
符合第二種情況,也就會轉換成010 & 100
,會把三個位數分開來判斷, 第一位0 && 1
,第二位1 && 0
,第三位0 && 0
,結果為000
,所以回傳0
^
:指的是 xor, 兩邊互相不符合,才會回傳 true
1 ^ 0
結果是1
- 所以
1 ^ 0
結果是0
0 ^ 0
結果是0
總結
JavaScript 是一種程式語言,我們可以運用它在瀏覽器上面執行我們想要完成的事情。下一篇再來開始介紹 JavaScript 的其他基礎概念。