JScript 具有全范围的运算符包括算术逻辑位赋值以及其他某些运算符
算术运算符
描述 符号
负值
递增 ++
递减 —
乘法 *
除法 /
取模运算 %
加法 +
减法
逻辑运算符
描述 符号
逻辑非 !
小于 <
大于 >
小于等于 <=
大于等于 >=
等于 ==
不等于 !=
逻辑与 &&
逻辑或 ||
条件(三元运算符) ?:
逗号
严格相等 ===
非严格相等 !==
位运算符
描述 符号
按位取反 ~
按位左移 <<
按位右移 >>
无符号右移 >>>
按位与 &
按位异或 ^
按位或 |
赋值运算符
描述 符号
赋值 =
运算赋值 OP=
杂项运算符
描述 符号
删除 delete
typeof 运算符 typeof
void void
instanceof instanceof
new new
in in
== (相等)与 === (严格相等)的区别在于恆等运算符在比较前强制转换不同类型的值例如恆等对字符串 与数值 的比较结果将为 true而严格相等不强制转换不同类型的值因此它认为字符串 与数值 不相同
基本的字符串数值和布尔值是按值比较的如果它们的值相同比较结果为相等对象(包括ArrayFunctionStringNumberBooleanErrorDate以及 RegExp 对象)按引用比较即使这些类型的两个变量具有相同的值只有在它们正好为同一对象时比较结果才为 true
例如
// 具有相同值的两个基本字符串
var string = Hello;
var string = Hello;
// 具有相同值的两个 String 对象
var StringObject = new String(string);
var StringObject = new String(string);
// 比较结果为 true
if (string == string)
// 执行某些命令(将要运行的)
// 比较结果为 false
if (StringObject == StringObject)
//执行某些命令(不会运行)
// 要比较 String 对象的值
// 用 toString() 或者 valueOf() 方法
if (StringObjectvalueOf() == StringObject)
//执行某些命令(将要运行的)