什麼是運算子(Operator)?
運算子算是一個簡單的函式,可以透過符號或單詞來運算它前後的數值,並回傳結果。
(圖一)從右到左依序: 運算元1 運算子 運算元2
運算子的特性: 一定會回傳結果
運算元
依據運算元的數量不同,運算子會分為 一元運算子、二元運算子、三元運算子。
大部分皆是二元,少部分是一元,一個是三元。
一元運算子
一元運算子需要具備一個運算元。(運算元1 運算子/運算子 運算元1)
x++;
++x;
- delete 運算子會刪除物件,物件的性質,或是陣列中指定 index 的物件。
delete 物件名稱; delete 物件名稱.性質; delete 物件名稱[索引]; delete 性質; // 只有在 with 陳述句中可以使用,用來刪除物件中的一個特性。
x = 100; var y = 50; var myArray = [1,2,3,4,5,6]; myObject = new Number(); myObject.n = 5; // 建立特性 n delete x; // 回傳 true (只有在隱式宣告時能被刪除) delete y; // 回傳 false (在使用 var 宣告時無法刪除) delete Math.PI; // 回傳 false (不能刪除內建定義的特性) delete Object.n; // 回傳 true (可以刪除使用者自定義的特性) delete Object; // 回傳 true (在隱式宣告時可被刪除) delete myArray[3]; // 回傳 true(但陣列的長度並不會改變,刪掉的會變empty)
2.typeof
3.Voidvar myFun = new Function('5 + 2'); var shape = 'round'; typeof myFun; // 回傳 "function" typeof shape; // 回傳 "string"
void 運算子會解析運算式而不回傳任何值,運算式會被解析而不會在當前頁面被印出。<a href="javascript:void(0)">點擊這裡,甚麼都不會發生</a> //void(0) 被解析為 未定義, 而甚麼都不會發生。
## 二元運算子<a href="javascript:void(document.form.submit())"> 點擊以送出</a>
一個二元運算子需要具備兩個運算元。(運算元1 運算子 運算元2) - 賦值運算子(右方的運算元的值賦予其 左方的運算元)
//賦值運算子最常見的就是"=" x = y; x = 3; x += y;
- 比較運算子
比較運算子會比較運算元 並基於比較的結果回傳邏輯值(true/false)。a == '小明'; x === 3; y !== 2; z > 12
- 算數運算子
- 位元運算子
- 邏輯運算子
通常被用於布林(邏輯)值; 使用於 布林(邏輯)值時, 它們會回傳布林型態的值。
另外還有 && 、 || 、 ! ,可能會回傳一個非布林型態的值。 - 字串運算子
將兩字串接在一起,並回傳接在一起後的結果。//常見 字串運算子 為 '+' console.log('Good' + 'Morning') // var string = 'Good'; string += 'Morning'; // string = string + 'Morning';
- 逗點運算子
- 關係運算子
關係運算子比較兩運算元並基於比較結果回傳布林值。
// 陣列
var trees = ['redwood', 'bay', 'cedar', 'oak', 'maple'];
0 in trees; // 回傳 true
3 in trees; // 回傳 true
6 in trees; // 回傳 false
'bay' in trees; // 回傳 false (你必須指定 索引,而不是 索引所對應的元素)
'length' in trees; // 回傳 true (length 是陣列的性質之一)
// 內建物件
'PI' in Math; // 回傳 true
var myString = new String("coral");
'length' in myString; // 回傳 true
// 自訂義物件
var mycar = { make: 'Honda', model: 'Accord', year: 1998 };
'make' in mycar; // 回傳 true
'model' in mycar; // 回傳 true
三元運算子
- 條件運算子
JavaScript 中唯一需要三個運算元的運算子。//基本樣式 條件 ? 值1 : 值2 //解釋: 若符合條件(true),回傳值1,否則回傳值2 var status = (age>18) ? 'Adult' : 'Kid';
範例
範例一:
var a;
a = 1 + 1;
這個範例包含兩個運算子 '+' '='
/運算過程
1 + 1; //2
a = 2 //2
範例二:
//三元運算子
var BMI = 18;
var b = (BMI <= 20) ? 'Skinny':'chubby';
console.log(b)//"Skinny"