JScript 具有全范围的运算符,包括算术、逻辑、位、赋值以及其他某些运算符。
计算逻辑位运算赋值杂项
描述符号描述符号描述符号描述符号描述符号
负值-逻辑非!按位取反~赋值=删除delete
递增++ 小于<按位左移<< 运算赋值oP= typeof 运算符typeof
递减-- 大于>按位右移>> void void
乘法*小于等于<=无符号右移>>> instanceofinstanceof
除法/大于等于>=按位与& newnew
取模运算%等于==按位异或^ inin
加法+不等于!=按位或|
减法-逻辑与&&
逻辑或||
条件(三元运算符)?:
逗号,
严格相等===
非严格相等!==
== (相等)与 === (严格相等)的区别在于恒等运算符在比较前强制转换不同类型的值。例如,恒等对字符串 "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) //执行某些命令(将要运行的)。