JavaScript基础(三)运算符和数据类型转换

JavaScript运算符

一、运算符和操作数的组合就称为表达式。
二、javascript运算符
   (一) 算术运算符
        +  -   *  /   %   var++     ++var   var--   --var
        A.  +
          (1)  用于数值的运算
          (2)  用于字符串的连接
          ***************************
           任何的数据类型和字符串相加都是等于相加以后的字符串
          *************************           
        B. %
          (1)用于取一段范围的值       
          (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?真值:假值

   (七) 位运算符

JavaScript数据类型转换

javascript数据类型强制转换

一、转换为数值类型
    Number(参数) 把任何的类型转换为数值类型

    A.如果是布尔值,false为0,true为1
    B.如果是数字,转换成为本身。将无意义的后导0去掉。
    C.如果Null转换为0
    D.如果是undefined 转换为NaN  not a number
    E.如果对象则会先调用对象的 valueOf(),如果valueOf()返回的是NaN,然后再调用对象的                   toString()
    F.如果是字符串
       1.如果字符串当中只有数字,转换为10进制(忽略前导0和后导0)
       2.如果是有效的规范的浮点型,转换为浮点值(忽略前导0和后导0)
       3.如果是空字符串,则转换为0
       4.如果是其他的值,返回NaN 
    parseInt(参数1,参数2)  将字符串转换为整数
      A.如果一个字符串只包含数字,则以10进制的方式转换为整型。
      B.他会自动忽略字符串前面的空格,知道找到第一个非空的数值字符串,直到解析到第一个
        非数值的字符串结束。
      C.如果字符串的第一个字符不是空格、数字、-,那么返回NaN
      D.参数1
        八进制                 十进制           十六进制
        0后面的数字不能超过7位                0x   0-9   a-f
         参数2,控制解析模式 
    parseFloat() 将字符串转换为浮点数
     A.字符串当中的.只有第一个有效,其他的都是无效的。
     B.如果字符串是一个有效的整数,他返回的是整数,不会返回浮点数。            
二、转换为字符串类型  
   1. String(参数)
      可以将任何的类型转换为字符串
      null和undefined:  也都会转换为字符串,分别是 null和undefined
      布尔类型:会返回true 和false
      数值类型:本身的字符串
    2.toString()
       调用的格式  对象.toString()
       作用是将对象以字符串的方式来表示
        array.toString()     由,分割的字符串
        Boolean.toString()   两个值  true false
        String.toString()    返回本身
        Number.toString(参数)    返回本身的字符串形式
        控制输出模式     
       注意:null和undefined没有toString()方法
三、转换为布尔类型
    Boolean()  可以将任何类型的值转换为布尔值
      转换为假:  ""、 0、 NaN 、undefined、 false
     其他的全部都转换为真。

javascript数据类型隐式转换
一、函数类
    isNaN()
    该函数会对参数进行隐式的Number()转换,如果转换不成功则返回true;
    alert()
    输出的内容隐式的转换为字符串
二、运算符类
   1.算数运算符
   -  *   /  %
   如果操作数不是数值,将会隐式的调用Number()函数,按照这个函数的转换规则进行转换,
   如果转换不成功,整个表达式返回NaN
   +
   如果操作数都是数值,然后进行相加
   任何数据类型和字符串相加,都会隐私的调用他们的toString()方法,然后返回他们拼接的结果。
   如果操作数都是布尔值,那么进行Number()转换,false为0,true为1,进行相加。
   2.关系运算符
    关系运算符的操作数可以是任何类型,如果操作数不是数值类型,将会隐式的转换
     (1)他运算的结果都是布尔值
        (2)都是字符串的时候,他会先隐式转换成ASCII码然后进行比较他们的第一个字母。
        (3)都是数值的时候,他会正常比较
        (4)当一个字符串,另一个是数值的时候,把字符串尝试转换成Number()数值类型,然后进行          比较,如果不能转换成数值类型,则会返回NaN,然后返回假
        (5) undefined == null
        (6)如果两个都是数值型字符串,那么他们隐式转换成ASCII码,也是只比较第一个
        (7)如果一个数值和布尔值进行比较,会把布尔值隐式转换为数值再进行比较,true为1,            false为  0
    3.等性运算符 ==  !=
      会对操作数隐式的转换后再比较值
       (1)如果其中至少有一个是布尔值,那么会隐式的调用Number()进行转换,然后比较。
       (2)如果一个为字符串。另一个为数值,那么会隐式的调用Number()对字符串进行转换,
          如果转换不成功,则返回false;
       (3) undefined == null
          (a)  比较字符串的时候是比较他们的ASCII码是否相等
          (b)  比较两个数值的时候是比较他们的数值是否相等
          (c)  比较函数的时候,判断他们的位置是否相等。     
     4.逻辑运算符
       A. 放在表达式里面用于判断。
       B. 给变量赋值
         var a= b && c
            如果一个运算数是对象,另一个是隐式的调用Boolean()函数,返回该对象。
            如果两个运算数都是对象,返回第二个对象。
            如果某个运算数是 null,返回 null。
            如果某个运算数是 NaN,返回 NaN。
            如果某个运算数是 undefined,发生错误。       
          var a=b ||c
             如果一个运算数是对象,并且该对象左边的运算数隐式的调用Boolean()函数 值为               false,则返回该对象。
             如果两个运算数都是对象,返回第一个对象。
             如果最后一个运算数是 null,并且其他运算数值均为 false,则返回 null。
             如果最后一个运算数是 NaN,并且其他运算数值均为 false,则返回 NaN。
             如果某个运算数是 undefined,发生错误。
三、语句类
   if(表达式){
    }else{
    }   
   格式: var  变量=  Boolean expression?真值:假值
    while(){
    }
    if语句和三元表达式里面的表达式会隐式的调用Boolean()函数,按照这个函数的转换规则,转换      为相应的布尔 值  
    
 

 
 






  

转载于:https://my.oschina.net/u/1403140/blog/188075

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值