前言
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 的其他基礎概念。

![[ 筆記 ] JavaScript 進階 01 - 變數性質](https://static.coderbridge.com/img/krebikshaw/34d6471b4155415584d9fa68e9c63363.jpg)
![[This schedulable class has jobs pending or in progress - CronTrigger IDs]](https://static.coderbridge.com/images/covers/default-post-cover-3.jpg)