[JavaScript基础教程]JavaScript运算符

JavaScript 具有全范围的运算符,包括算术、逻辑、位、赋值以及其他某些运算符。

计算 逻辑 位运算 赋值 杂项          
描述 符号 描述 符号 描述 符号 描述 符号 描述 符号
负值 - 逻辑非 ! 按位取反 ~ 赋值 = 删除 delete
递增 ++ 小于 < 按位左移 << 运算赋值 oP= typeof 运算符 typeof
递减 -- 大于 > 按位右移 >>     void void
乘法 * 小于等于 <= 无符号右移 >>>     instanceof instanceof
除法 / 大于等于 >= 按位与 &     new new
取模运算 % 等于 == 按位异或 ^     in in
加法 + 不等于 != 按位或 |        
减法 - 逻辑与 &&            
    逻辑或 ||            
    条件(三元运算符) ?:            
    逗号 ,            
    严格相等 ===            
    非严格相等 !==            

== (相等)与 === (严格相等)的区别在于恒等运算符在比较前强制转换不同类型的值。例如,恒等对字符串 "1" 与数值 1 的比较结果将为 true。而严格相等不强制转换不同类型的值,因此它认为字符串 "1" 与数值 1 不相同。

基本的字符串、数值和布尔值是按值比较的。如果它们的值相同,比较结果为相等。对象(包括ArrayFunctionStringNumberBooleanError、Date以及 RegExp 对象)按引用比较。即使这些类型的两个变量具有相同的值,只有在它们正好为同一对象时比较结果才为 true。

例如:

  1. // 具有相同值的两个基本字符串。 
  2. var string1 = "Hello"
  3. var string2 = "Hello"
  4.  
  5. // 具有相同值的两个 String 对象。 
  6. var StringObject1 = new String(string1); 
  7. var StringObject2 = new String(string2); 
  8.  
  9. // 比较结果为 true。 
  10. if (string1 == string2) 
  11.      // 执行某些命令(将要运行的)。 
  12.  
  13. // 比较结果为 false。 
  14. if (StringObject1 == StringObject2) 
  15.     //执行某些命令(不会运行)。 
  16.  
  17. // 要比较 String 对象的值,  
  18. // 用 toString() 或者 valueOf() 方法。 
  19. if (StringObject1.valueOf() == StringObject2) 
  20.      //执行某些命令(将要运行的)。 

    

转载请注明:代码家园 » [JavaScript基础教程]JavaScript运算符

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)