javascript运算符

来源:常见问题 2014-03-05

javascript运算符

一、运算符和操作数的组合就称为表达式。


二、javascript运算符
   
   (一) 算术运算符
        +  -   *  /   %   var++     ++var   var--   --var
        A.  +
          (1)  用于数值的运算
          (2)  用于字符串的连接
          ***************************
           任何的数据类型和字符串相加都是等于相加以后的字符串
          *************************
            
        B. %
          (1)用于取一段范围的值
              eg:取偶数  \取奇数
          (2) 一般不用于小数,因为结果不确定。
        
        C. var++   ++var
          ++在前面,他比较自私,会自己先加,然后再赋值。
          ++在后面,他比较无私,先赋值,然后自己再加。


   (二) 关系运算符(比较运算符)
        <   >    <=>=  ==   ===   !=  !==
        (1)他运算的结果都是布尔值
        (2)都是字符串的时候,他会先转换成ASCII码然后进行比较他们的第一个字母。
        (3)都是数值的时候,他会正常比较
        (4)当一个字符串,另一个是数值的时候,把字符串尝试转换成数值类型,然后进行比较,
           如果不能转换成数值类型,则会返回NaN,然后返回假
        (5) undefined  null
        (6)如果两个都是数值型字符串,那么他们也是只比较第一个
        (7)如果一个数值和布尔值进行比较,会把布尔值转换为数值再进行比较,true为1,false为             0

          A.  ==  只比较值是否相等
          (1)  比较字符串的时候是比较他们的ASCII码是否相等
          (2)  比较两个数值的时候是比较他们的数值是否相等
          (3)  比较函数的时候,判断他们的位置是否相等。
          
          B.  ===  不但比较值是否相等,还比较类型是否相等。

   (三) 赋值运算符
        =   +=   -=   *=  /=   %=
       A. +=
           var a=1;
            a+=3; a=a+3
          (1)  用于数值的相加再赋值
          (2)  用于字符串的连接再赋值
          ***************************
           任何的数据类型和字符串相加都是等于相加以后的字符串
          *************************


   (四) 逻辑运算符(布尔运算符)
        与 and &&      或 or ||       非not !

       A. &&
          if(a && b){
       alert("两个都是真的");
      }else{
       alert("至少有一个是假的")
      }
         运算符两边只要有一个是假,那么他的运算结果就是假,只有两个都为真的时候,运算结果
         才是真的。

       B.||
        if(a || b){
       alert("至少有一个是真的");
    }else{
       alert("两个都是假的")
    }
          运算符两边只要有一个是真的那么他就是真的,只有当两个都是假的时候,他才是假的。

       C.not !
          取反,假的变成真的,真的变成假的。

       (1)逻辑运算符可以对任何类型的数据进行运算但是在运算的时候,可以转换为对应的布尔值
          Undefined     false
          Null          false
          Boolean      就是本身的值
          Number       除了0以外都是真的
          String       除了空字符串意外都是真的
          对象         真的

       (2)类变量进行赋值
          var a= b && c
            如果一个运算数是对象,另一个是 Boolean 值,返回该对象。
            如果两个运算数都是对象,返回第二个对象。
            如果某个运算数是 null,返回 null。
            如果某个运算数是 NaN,返回 NaN。
            如果某个运算数是 undefined,发生错误。
          var a=b ||c
             如果一个运算数是对象,并且该对象左边的运算数值均为 false,则返回该对象。
             如果两个运算数都是对象,返回第一个对象。
             如果最后一个运算数是 null,并且其他运算数值均为 false,则返回 null。
             如果最后一个运算数是 NaN,并且其他运算数值均为 false,则返回 NaN。
             如果某个运算数是 undefined,发生错误。

 
           

   (五) 一元运算符
        typeof  +  -  delete  new   ++   --
        
        A. +
          正号、正数
       
         B.delete
          删除对象的方法或是属性
        
         C.new
          用来创建一个对象
       

   (六) 特殊的运算符

     ,   ()      = ? :
    A. ,
     用来一次声明多个变量
   
    B.()
      (1) 运算的时候有优先级的作用
          a*(b-c)
      (2) 运行一段函数
    
    C.根据表达式的计算结果有条件的为变量赋值
      格式: var  变量=  Boolean expression?真值:假值




   (七) 位运算符