LESSON 3 - Operators 運算子
簡單來說。。。就是一般會用到的加減乘除
還有其他邏輯運算
// 常用的代入運算子
x = y // x = 10
x += y // x = x + y Ex. 3 = 2 + 1
x -= y // x = x - y Ex. 1 = 2 - 1
x *= y // x = x * y Ex. 2 = 2 * 1
x /= y // x = x / y Ex. 2 = 2 / 1
x %= y // x = x % y Ex. 1 = 3 % 2
x &= y // x = x & y Ex. 1 = 1 & 1
x |= y // x = x | y Ex. 1 = 1 | 0
// 常用的比較運算子 以下範例都會回傳true
== // 3==3, '3'==3, 3=='3'
!= // 1!=4, 2!='3'
=== // 3===3
!== // 3!=='3'
> // 3>2
>= // 3>=3
< // 2<3
<= // 2<=2
// 標準的算術運算子包含加(+)、減(-)、乘(*)、除(/)、餘數(%)
// 以下為Javascript的其他運算式
var x = 1
++x // 2
x++ // 2
console.log(x) // 3
var y = 3
--y // 2
y-- // 2
console.log(y) // 1
// AND運算(&&)
// 當兩者為true時才會回傳true
var a = true && true; // return true
var b = false && true; // return false
// OR運算(||)
// 當兩者有一個為true時就會回傳true
var c = false || true; // return true
var d = false || false; // return false
// NOT運算(!)
// 當式子能轉換為false則回傳true
var e = !false // return true
var f = !true // return false
var g = !"Cat" // return false
// NOT運算子常用來做流程控制的邏輯判斷
// Ex. 判斷傳進來的值是否為空
var somevalue = null;
if(!value) {
// do something...
}
// 如果condition為true,則結果取val1,否則取val2
condition ? val1 : val2
var age = 19;
var huli = (age>=18) ? "成年" : "未成年";
var str = "abc"+"def"; // abcdef
var str2 = "abc";
str2 += "xyz"; //abcxyz
// 如果指定的對象存在則回傳true
val1 in array1
// Array
var weekday = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday'];
0 in weekday // true
5 in wekkday // false
'monday' in weekday // false
// (此範例截至https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Obsolete_Pages/Obsolete_Pages/Obsolete_Pages/運算子/算術運算子)
// 當使用浮點數時:(須特別注意,除以零會產生 NaN)
// 註:NaN => Not a Number
1 / 2 // 在 JavaScript 中返回 0.5
1 / 2 // 在 Java 中返回 0(這兩個數並未明確表示為浮點數)
1.0 / 2.0 // 在 JavaScript 和 Java 中都返回 0.5
Bitwise Shift Operators
1 => 1
2 => 10
3 => 11
4 => 100
5 => 101
6 => 110
7 => 111
8 => 1000
9 => 1001
8 => 1000
9 => 1001
9 & 8 = 8
1001 & 1000 = 1000
位元 AND (&)
9 | 8 = 9
1001 | 1000 = 1001
位元 OR (|)
9 ^ 8 = 1
1001 | 1000 = 0001
位元 XOR (^)
兩者為 1 時,返回 1
兩者或其中一者為 1 時,返回 1
其中一者而非兩者為 1 時,返回 1
4 << 1 = 8
0100 => 1000
左移 (<<)
9 >> 2 = 2
1001 => 10
維持符號右移 (>>)
-14 >> 2 = ?
填 0 右移 (>>>)
9 >>> 2 = 2
1001 => 10
1. 宣告兩個型態為number的數字, 相加後的結果須符合以下運算式, 印出val1
Hint : result === "98" ? val1 : val2
2. 宣告兩個分別可以被3和5整除的變數, 當兩個變數都可以被整除時則印出val2
condition ? val1 : val2
Hint : JS的世界裏, 1==true, 0==false