博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript基础(三)运算符和数据类型转换
阅读量:5807 次
发布时间:2019-06-18

本文共 4266 字,大约阅读时间需要 14 分钟。

hot3.png

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

你可能感兴趣的文章
springboot~rabbitmq的队列初始化和绑定
查看>>
Working with SharePoint’s Discussion Lists Programmatically – Part 1
查看>>
iOS 对overflow:scroll使用
查看>>
Gym - 101981A The 2018 ICPC Asia Nanjing Regional Contest A.Adrien and Austin 简单博弈
查看>>
CDH升级 5.7.5 --> 5.13.3(tar包方式)
查看>>
Vue.js 基本功能了解一下~
查看>>
[转]Kinect for Windows SDK开发入门(二):基础知识 上
查看>>
二维子数组和的最大值
查看>>
dl以及dt,dd,以及table的tr,th,td最清楚分析
查看>>
瓣数字阅读计划上线 作者可直接获取收益
查看>>
phpcms V9实现wap上一篇、下一篇功能
查看>>
phpcms v9 wap内容页内容显示方法
查看>>
jQuery异步提交与JSON解析
查看>>
第七次作业--项目需求分析(团队)
查看>>
nsoperation
查看>>
GET和POST
查看>>
html5 audio组件禁止下载
查看>>
VC6无法生成Release版本程序
查看>>
Nonlinear Component Analysis as a Kernel Eigenvalue Problem
查看>>
dubbo监控报错Error creating bean with name 'uriBrokerService'
查看>>