【JavaScript】操作符

      上一篇我们讲到数据类型,我们可以根据数据类型创建不同的变量,但是要用JavaScript做一些有用的工作,还需要能够进行计算和处理数据,也就是需要完成一些操作。因此这篇博客,就带大家去看看JavaScript的操作符。

 

概览

 

     首先要说明一点,我们这里所说的操作符和运算符是一个意思。JavaScript里的操作符包括 一元,布尔、算术、关系、三元、赋值、位操作符。JavaScript中的操作符适用于很多值,包括字符串、数值、布尔值、对象等。

     本篇博客的操作符介绍如下思维导图。

   


 

一元操作符

 

只能运算一个值的运算符叫做一元运算符。

      1.赋值操作时,如果递增或递减运算符前置,那么前置的运算符因为是“前”,所以要先累加或累减再赋值,如果是后置运算符,因为“靠后”,则先赋值再累加或累减。下面举个栗子:      

       var box=100;
       var age=++box;    //age 值为101
       var height=box++; //height 值为100

      2.其它类型应用规则   

    var box =‘ab’;box++;    //NaN,字符串包含非数值转成NaN
    var box=false;box++;    //1,false 转成数值是0,累加就是1

      

算术操作符

 

     算术操作符有5个,加减乘除求模(取余)。

     加法

     加号既可以用于数值,也可以用于字符串。两个字符串拼接是一种很直观易懂的操作。

     例如: var message=I amfeeling+happy”;执行结果就是I am feeling happy


     像这样把多个字符串首尾相连的操作叫做“桥接”,这种拼接也可以通过变量来完成。

     例如:var mood =happy”; var message=I am feeling+mood


     不仅仅字符串可以拼接在一起,数值和字符串也可以拼接在一起。因为Java Script是一种弱类型的语言,所以这种拼接操作是允许的。此时,数值会被自动转换为字符串。

     例如:

       var year=2016;var message=“The year is ”+ year;
      

     加法中,如果一个数值和一个字符串求和会按照字符串来拼接,但是两个数值进行加法运算结果为数值。例如:

       alert(“10”+20) //这个输出结果就是 字符串“1020”    
       alert (10+20) //这个结果就是数值结果30

     关于加法另一个非常有用的快捷操作符就是 +=,它可以一次完成“加法和赋值”:    

      var year=2016;
      var message=“Theyear is”; 
      message+=year;     

       执行完这些语句后,最后变量message的值 The year is 2016”。

      如果加法和对象类型相加:

    var box =10+对象   //如果有toString()或valueOf(),则返回10+返回数的值,如果没有则结果 为 10[Object Object]


      乘法


     乘法中,数值的乘法运算和数学中差不多,特殊情况有以下几种。    

      var box =100*NaN ;   //有一个NaN,结果就为NaN
      var box =100*true;  //true 的值为1,所以结果为100
      var box=100*“Wang”; //“Wang”转成了NaN,结果为NaN
      var box =100*";     //"转换为了0,结果为0
      var box=100*对象; //如果有toString()或valueOf(),则返回100*返回数的值,如果没有则结果 为 NaN   

        除法   

      除法中,数值的除法运算和数学中差不多,特殊情况有以下几种。      

      var box =100 /";   //结果为Infinity 正无穷
      var box=100 /“Wang”; //“Wang”转成了NaN,结果为NaN
      var box=100/对象; //如果有toString()或valueOf(),则返回100/返回数的值,如果没有则结果 为 NaN

 

       取模

 

     取模中,数值的取模运算和数学中差不多。其余的情况除了 var box  =100 %true ;  //值为,其它的情况都是NaN

         

比较操作符

 

     比较操作符也可以叫做关系操作符。它们几乎只能用在条件语句里,所以上面的思维导图是不是更懂一点了呢。像小于、大于、小于等于、大于等于这些都比较好理解。

     问你一个问题,如果你想比较两个数是否相等,应该用等于操作符没错,那么等于操作符是“=”么?

答案,当然不是。不要忘了我们赋值用的是“=”,那么等于就是两个等号(==)。

看下面的栗子: 

 var my_mood =“happy”;
 var  your_ mood=“great”;
 if (my_mood ==your_mood){
alert(“We both feltthe same.”);
}


      输出结果是false,因为我们心情不一样。

     但是相等操作符也有让我们犯糊涂的时候。比如看下面的栗子,你的结果是什么?    

       var a = false;
       var b="";
       if (a==b)
       {
          alert ("a equals b ");
       }


     你的结果出来了没?上面代码执行结果居然是 true,但是我们都知道 a b 不相等,但是“”空字符串被理解为false。所以要想进行更为严格的比较,我们就要使用另一种等号(===)。

      ===全等操作符会被严格执行,不仅仅比较值,也会比较变量的类型。同样是上面的例子:

执行结果就是false,因为在值的比较上,false空字符串相等,但是a的数据类型是 Boolean。但是 b的数据类型是string

     对于不等符!=来说,你想要严格的不相等就是用!==


     对于比较操作符还有几点规则需要大家遵循:

      1.一个操作数是布尔值,比较值钱转换为数值,false转为0true转为1.

      2.一个操作数是字符串,则比较之前将其转成数值再比较。

      3.不需要任何转换的情况下,null Undefined 是相等的。

       

逻辑操作符

    

      Java Script允许把条件语句里的操作组合在一起。例如,如果想检查某个变量,不妨假设这个变量的名字是num,它的值是不是在5-10之间,我将需要进行两次比较操作。首先比较这个变量是否大于或等于5,;然后比较这个变量是否小于或等于10.这两次的比较操作成为逻辑比较。看看下面的代码:     

       if(num>=5 && num<=10)
       {
        alert("The numberis in the right range.");
        }


     上面就用到一逻辑操作符 && 。逻辑操作符的对象是布尔值,只有在两个操作数都是 true时才会返回true

      "逻辑或 " 的符号为||,只要它的操作数一个为“true”,那么逻辑或的操作就是 true,如果两个操作数都为 true,结果也为true。只有当两个操作数都是false的时候,逻辑或操作才会是false

    “逻辑非”的符号为!,它只作用于单个逻辑操作数,其结果是把那个逻辑操作数返回的布尔值取反。如果返回的是 true,就取反为 false。看下面的代码:    

     if (!1>2)      //逻辑非作用于括号里的内容
     {
         alert("All is  well with the world");
      }


    逻辑非,也可以用于把条件语句的结果颠倒过来。看看下面的例子:

     if (!num>10  ||  num<5))
     {
         alert("The number is  in the right range.");
      }


 

 其它操作符

 

      逗号操作符

      逗号运算符可以再一条语句中执行多个操作。看看下面的例子:

      var box=100,age=20,height=166;   //声明多个变量
      var box=[1,2,3,4,5];  //声明数组
      var box ={            //声明对象
                  1:2,
                  3:4,
                  5:6
                };


      三元操作符

      三元操作符就是if 语句的简写形式。

      varbox =5>4 ? ''''   //结果是对,5>4结果是 true把结果返回给 box 

      转为if语句就是:  

           var box ="";        // 初始化变量
           if (5>4) {          //判断表达式返回值
               box='对';     //赋值
           }else{
               box ='错';    // 赋值
           }


小结

 

     本篇博客列出了很多代码例子帮助我们了解JavaScript操作符的基础,别小看操作符的力量,进行计算和处理数据,表达式条件的组合变化,都离不开操作符。多多实践,下次见~

 

 

评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值