JScript 具有全范围的运算符,包括算术、逻辑、位、赋值以及其他某些运算符。
| 计算 |
逻辑 |
位运算 |
赋值 |
杂项 |
|
|
|
|
|
| 描述 |
符号 |
描述 |
符号 |
描述 |
符号 |
描述 |
符号 |
描述 |
符号 |
| 负值 |
- |
逻辑非 |
! |
按位取反 |
~ |
赋值 |
= |
删除 |
delete |
| 递增 |
++ |
小于 |
< |
按位左移 |
<< |
运算赋值 |
oP= |
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)
//执行某些命令(将要运行的)。