美文网首页
javascript数据类型隐式转换

javascript数据类型隐式转换

作者: ssttIsme | 来源:发表于2019-11-24 20:13 被阅读0次

    javascript数据类型隐式转换

    一、函数类

    isNaN()改函数会对参数进行隐式的Number()转换,如果转换不成功则返回true

        var a="abc";
        document.write(isNaN(a)); 输出true
        var b="123";
        document.write(isNaN(b)); 输出false
    

    alert()对输出的内容隐式地转换为字符串

    二、运算符类

    2.1算术运算符 - * / %
    如果操作数不是数值,将会隐式地调用Number()函数,按照这个这个函数的转换规则进行转换,如果转换不成功这个表达式返回NaN

        var num=123;
        var str="字符串";
        document.write(num-str); 输出NaN
    

    +如果操作数都是数值,然后进行相加。任何数据类型和字符串相加,都会隐式调用它们的toString(),然后返回它们拼接的结果。
    如果操作数都是布尔值,那么由Number()转换,false为0,true为1,进行相加

        var c=true;
        var d=false;
        document.write(c+d); 输出1
    

    2.2关系运算符

    < > <= >= == === != !==
    

    关系运算符的操作数可以是任何类型,如果操作数不是数值类型将会隐式地转换
    (1)运算的结果都是布尔值
    (2)都是字符串的时候,会隐式转换成ASCII码再进行比较
    (3)都是数值的时候会正常比较
    (4)当一个是字符串,另一个是数值的时候,会把字符串尝试地转化成Number数值类型,然后进行比较。
    如果不能转换成数值类型,则会返回NaN,然后返回false
    (5) undefined==null
    (6)如果两个都是数值型字符串,那么它们隐式转换成ASCII码,且只是比较第一个
    (7)如果一个数值和一个布尔值信息比较,会把布尔值隐式地转换为数值再进行比较,true为1,false为0
    2.3等性运算符== !=
    等性运算符会对操作数做隐式的转换后再进行比较
    (1)如果其中至少有一个是布尔值,那么会隐式地调用Number()函数进行转换,然后进行比较
    (2)如果一个为字符串,另一个为数值,也会隐式地调用Number()函数对字符串进行转换,如果转换不成功则返回false

        var e="123";
        var f=123;
        document.write(e==f); 输出true
    

    (3) undefined==null
    (4)==
    (a)比较字符串的时候是比较它们的ASCII码是否相等
    (b)比较两个数值的时候是比较它们的数值是否相等
    (c)比较函数的时候是判断它们的位置是否相等
    2.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{
    
    }
    while(表达式){
    }
    

    if语句里面的表达式、while语句里面的表达式和三元表达式会隐式地调用Boolean()函数,按照这个函数的转换规则转换为相应的布尔值

    转换为假:"",0,NaN,undefined,false
    其他的全部都转换为真

    相关文章

      网友评论

          本文标题:javascript数据类型隐式转换

          本文链接:https://www.haomeiwen.com/subject/fgcrwctx.html