JScript 具有全范圍的運算符,包括算術、邏輯、位、賦值以及其他某些運算符。
描述 | 符號 |
---|---|
邏輯非 | ! |
小于 | < |
大于 | > |
小于等于 | <= |
大于等于 | >= |
等于 | == |
不等于 | != |
邏輯與 | && |
邏輯或 | || |
條件(三元運算符) | ?: |
逗號 | , |
嚴格相等 | === |
非嚴格相等 | !== |
描述 | 符號 |
---|---|
刪除 | delete |
typeof 運算符 | typeof |
void | void |
instanceof | instanceof |
new | new |
in | in |
== (相等)與 === (嚴格相等)的區(qū)別在于恒等運算符在比較前強制轉換不同類型的值。例如,恒等對字符串 "1" 與數(shù)值 1 的比較結果將為 true。而嚴格相等不強制轉換不同類型的值,因此它認為字符串 "1" 與數(shù)值 1 不相同。
基本的字符串、數(shù)值和布爾值是按值比較的。如果它們的值相同,比較結果為相等。對象(包括Array、Function、String、Number、Boolean、Error、Date以及 RegExp 對象)按引用比較。即使這些類型的兩個變量具有相同的值,只有在它們正好為同一對象時比較結果才為 true。
例如:
// 具有相同值的兩個基本字符串。 var string1 = "Hello"; var string2 = "Hello"; // 具有相同值的兩個 String 對象。 var StringObject1 = new String(string1); var StringObject2 = new String(string2); // 比較結果為 true。 if (string1 == string2) // 執(zhí)行某些命令(將要運行的)。 // 比較結果為 false。 if (StringObject1 == StringObject2) //執(zhí)行某些命令(不會運行)。 // 要比較 String 對象的值, // 用 toString() 或者 valueOf() 方法。 if (StringObject1.valueOf() == StringObject2) //執(zhí)行某些命令(將要運行的)。