js|jscript|运算
JScript 具有全范围的运算符,包括算术、逻辑、位、赋值以及其他某些运算符。
| 计算 | 逻辑 | 位运算 | 赋值 | 杂项 | |||||
|---|---|---|---|---|---|---|---|---|---|
| 描述 | 符号 | 描述 | 符号 | 描述 | 符号 | 描述 | 符号 | 描述 | 符号 |
| - | ! | ~ | = | delete | |||||
| ++ | < | << | oP= | typeof | |||||
| -- | > | >> | void | ||||||
| * | <= | >>> | instanceof | ||||||
| / | >= | & | new | ||||||
| % | == | ^ | 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)//执行某些命令(将要运行的)。


