#基礎觀念
#邏輯運算
#位元運算
JavaScript 是一個成熟的動態程式語言,應用於 HTML 文件(document)上時,就可以為網頁提供動態的互動功能。JavaScript 是由 Mozilla project、Mozilla Foundation 和 Mozilla Corporation 的創辦人 Brendan Eich 所發明的。 文章參考
早期 javascript 只能用在瀏覽器上執行,之後 2009 年有了 Node.js,Node.js 是能夠在伺服器端運行 JavaScript 的開放原始碼、跨平台 JavaScript 執行環境(run-time)。因此 javascript 除了瀏覽器上執行也可以在 Node.js 執行。
邏輯運算 : && (and)、|| (or) 與 ! (not)
> true || true
true
> true || false
true
> true && false
false
> true && true
true
> !true
false
> !false
true
|| 與 && 的短路性質
> 3 || 10
3
> false || 10
10
> 0 || 10
10
or
只要有一個是 true 就會印出來,所以不會跑到後面。
0 要把它看成 false , 負數也是 true
> 3 && 10
10
> true && false
false
> false && 10
false
> 0 && 10
0
> false && 0
false
位元運算
位移運算子 >> 與 <<
- 複習 2進位
二進位
0100 = 2^2 = 4
1000 = 2^3 = 8
<< 往左移 1 位
數字乘2
0011 => 0110 3 << 1
結果是 3x2=6
>> 往左移 1 位
數字除2
0101 => 0010 6 >> 1
結果是 6/2=3
p.s. 往右移如果不能整除的話會是無條件捨去,
所以 5 >> 1 是 5/2=2..1
餘1會捨去,結果是 2
5 >> 1 會是 2
0101 => 0010
5 >> 2 會是 1
0101 => 0001
位移運算子會比直接乘以2除2效能比較快
位元運算的 and、or、xor 與 not
- 一個符號是位元運算
- 兩個符號是邏輯運算
1010
1111
and______
1010
> 10 & 15
10 // 1010 && 1111 = 1010
> 10 && 15
15 // || 與 && 的短路性質
1010
1111
or________
1111
> 10 | 15
15
> 10 || 15
10
1010
1111
xor________
0101
> 10 ^ 15
5
// xor 兩個都是 1,兩個都是 0,會回傳 0
// 兩個不一樣,回傳 1
// 符號代表 ^
// not 數字反轉 , 1 變 0 , 0 變 1
> !15
false
> ~15
-16