Javascript中的運算子與C/C++中的運算子相似,但有幾處不同的地方,相對於C/C++,也增加了幾個不同的運算子,包括in,instanceof,typeof,delete. 需要熟悉一下.
2.1 in運算子
in運算子要求左邊的運算數是一個字串,或者可以被轉換為字串,右邊的運算數是一個對象或數組.
如果運算子左邊的值是右邊對象的一個屬性名稱,返回為true.
1var point = {x:1,y:1}
2var has_x_coord = “x” in point; // true
3var has_y_coord = “y” in point; // true
4var has_z_coord = “z” in point; // false
5var ts = “toString” in point; // 繼承自object屬性,true;2.2 instanceof運算子
instance 運算子要求左邊的運算數是一個對象,右邊的運算數是對象類的名字.
如果運算子左邊的對象是右邊類的一個執行個體,它返回true,否則返回false.
1var d = new Date();
2d instanceof Date; // true
3d instanceof Object; // true
4d instanceof Number; // false
5var a = [1,2,3];
6a instanceof Array; // true
7a instanceof RegExp; // false
2.3 typeof運算子
typeof運算子是一元運算子,運算數任意類型.它的傳回值是一個字串,傳回值說明了運算數的類型.
如果運算數是數字、字串或布爾值,其返回的結果就是“number”,“string”,“boolean”。對於對象、數組和null,它返回的是“object”。
對於函數,它返回的是“function”,如果運算數是未定的,返回的是“Undefined”。
2.4 delete運算子
delete運算子不是用來刪除對象,清除對象記憶體所用的.
它是刪除運算子指定對象的屬性,數組元素或變數.
刪除成功,它返回true
1var o = {x:1,y:2}
2delete o.x; // return true;
3delete o.y; // return true;
4delete o.x; // 刪除一個已經不存在的元素(已經被刪),返回true
5delete o; // 不能刪除,return false