JavaScript 具有全范围的运算符,包括算术、逻辑、位、赋值以及其他某些运算符。
计算 | 逻辑 | 位运算 | 赋值 | 杂项 | |||||
---|---|---|---|---|---|---|---|---|---|
描述 | 符号 | 描述 | 符号 | 描述 | 符号 | 描述 | 符号 | 描述 | 符号 |
负值 | - | 逻辑非 | ! | 按位取反 | ~ | 赋值 | = | 删除 | 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)
- //执行某些命令(将要运行的)。
零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。