JScript 具有全范围的运算符,包括算术、逻辑、位、赋值以及其他某些运算符。
描述 | 符号 |
---|---|
逻辑非 | ! |
小于 | < |
大于 | > |
小于等于 | <= |
大于等于 | >= |
等于 | == |
不等于 | != |
逻辑与 | && |
逻辑或 | || |
条件(三元运算符) | ?: |
逗号 | , |
严格相等 | === |
非严格相等 | !== |
描述 | 符号 |
---|---|
删除 | delete |
typeof 运算符 | typeof |
void | void |
instanceof | instanceof |
new | new |
in | in |
== (相等)与 === (严格相等)的区别在于恒等运算符在比较前强制转换不同类型的值。例如,恒等对字符串 "1" 与数值 1 的比较结果将为 true。而严格相等不强制转换不同类型的值,因此它认为字符串 "1" 与数值 1 不相同。
基本的字符串、数值和布尔值是按值比较的。如果它们的值相同,比较结果为相等。对象(包括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) // 执行某些命令(将要运行的)。 // 比较结果为 false。 if (StringObject1 == StringObject2) //执行某些命令(不会运行)。 // 要比较 String 对象的值, // 用 toString() 或者 valueOf() 方法。 if (StringObject1.valueOf() == StringObject2) //执行某些命令(将要运行的)。