美文网首页
JS == 和===的区别

JS == 和===的区别

作者: 新晋小牛牛 | 来源:发表于2017-03-04 10:59 被阅读18次

    强制类型转换:
    字符串转整数可以使用: parseInt()
    字符串转小数可以使用: parseFloat()

    **[html]** [view plain](http://blog.csdn.net/baoendemao/article/details/52723869#) [copy](http://blog.csdn.net/baoendemao/article/details/52723869#)
     [![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/1910438)[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/1910438/fork)
    
    <pre name="code" class="html"><!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Title</title>  
        <script>  
           window.onload=function (){  
               var oTXT1=document.getElementById("txt1");  
               var oTXT2=document.getElementById("txt2");  
               var oTXT3=document.getElementById("txt3");  
               var oBtn=document.getElementById("btn");  
      
               oBtn.onclick=function() {  
                   // 文本框对象.value是string类型,所以需要类型转换  
                   // 字符串转数字  
      
                   var n1=parseInt(oTXT1.value);  
                   var n2=parseInt(oTXT2.value)  
      
                   if(isNaN(n1) || isNaN(n2))  
                   alert("input error");  
                  oTXT3.value=n1+n2;  
               }  
           }  
        </script>  
    </head>  
    <body>  
        <input type="text" id="txt1" />  
        <input type="text" id="txt2" />  
        <input type="text" id="txt3" />  
        <input type="button"  id="btn" />  
    </body>  
    </html>  
    

    隐式类型转换:

    **[html]** [view plain](http://blog.csdn.net/baoendemao/article/details/52723869#) [copy](http://blog.csdn.net/baoendemao/article/details/52723869#)
     [![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/1910438)[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/1910438/fork)
    
    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Title</title>  
        <script>  
                var a=5;  
                var b="5";  
                alert(a==b);   //返回true , 这里做了隐式类型转换,先把a和b转换成相同的类型,再做比较。  
    
    **[html]** [view plain](http://blog.csdn.net/baoendemao/article/details/52723869#) [copy](http://blog.csdn.net/baoendemao/article/details/52723869#)
     [![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/1910438)[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/1910438/fork)
    
                alert(a===b);  //返回false, === 不做类型转换  
      
        </script>  
    </head>  
    <body>  
    </body>  
    </html>  
    
    **[html]** [view plain](http://blog.csdn.net/baoendemao/article/details/52723869#) [copy](http://blog.csdn.net/baoendemao/article/details/52723869#)
     [![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/1910438)[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/1910438/fork)
    
    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Title</title>  
        <script>  
                var a='7';  
                var b="5";  
                alert(a-b);   // 返回2, 减号做 隐式类型转换:字符串转整数  
                alert(a+b);   // 返回75,加号做 字符串连接  
        </script>  
    </head>  
    <body>  
    </body>  
    </html>  
    

    ==和===的区别:

    false == 0; // truefalse === 0; // false

    要特别注意相等运算符==
    JavaScript在设计时,有两种比较运算符:
    第一种是==
    比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;
    第二种是===
    比较,它不会自动转换数据类型,如果数据类型不一致,返回false
    ,如果一致,再比较。

    由于JavaScript这个设计缺陷,不要使用==
    比较,始终坚持使用===
    比较。

    另一个例外是NaN
    这个特殊的Number与所有其他值都不相等,包括它自己:

    NaN === NaN; // false
    

    唯一能判断NaN
    的方法是通过isNaN()
    函数:

    isNaN(NaN); // true
    

    相关文章

      网友评论

          本文标题:JS == 和===的区别

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