js==和===的区别

js=的区别

参考网址:

https://blog.csdn.net/Intelligent_/article/details/104588540?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163765444716780366538588%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163765444716780366538588&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-9-104588540.pc_search_result_cache&utm_term=%3D+%3D%3D+%3D%3D%3D%E5%8C%BA%E5%88%AB&spm=1018.2226.3001.4187

说明:
作者这篇帖子介绍已经比较详细 , 这个知识点我听说是前端高频基础 面试题

我整理成了一个html文件 , 直接点击按钮运行即可

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
<button id='btn'>测试按钮</button>
<!-- 测试前端 == 和 === 的区别 -->
<script>
    var btn = document.getElementById('btn')
    btn.onclick = function () {
        alert('测试开始,浏览器控制台查看验证结果');
        /*
        (1)== 等于
            只比较值,不比较数据类型
             不论数据类型,只看数值是否相等
            console.log(1== 1);
            在控制台输出的结果为 true
            console.log(1 == '1');
            在控制台输出的结果也为 true
        */
        console.log('== 等于 测试');
        console.log(1 == 1);
        console.log('1' == 1);
        console.log("1" == 1);

        /*
        (2)=== 全等
         值和数据类型都需要比较
         必须数据类型和值都要相同时,才会为true
         console.log(1 === 1);
        在控制台输出的结果为 true

        console.log(1 === '1');
        在控制台输出的结果为 false

        不同的原因:
        console.log(typeof(1));
        检查数据类型: 1 数据类型为 number

        console.log(typeof('1'));
        检查数据类型: '1' 数据类型为 string

        因为 === 全等需要比较值和数据类型的,两者任一条件不满足则就不会是全等
         */
        console.log('=== 全等 测试')
        console.log(1 === 1)
        console.log('1' === 1);
        console.log("1" === 1);

        /*
        3、== 和 === 中的注意点:
        (1)== 等于
        ① 如果两个值类型不同,也有可能相等
        若一个是null,一个是 undefined,那么结果是相等的
        ② 如果其中至少一个是NaN,那么就不相等

        console.log( null == undefined);
        在控制台输出的结果为 true

        console.log( NaN == NaN);
        在控制台输出的结果为 false
        */
        console.log('== 和 === 中的注意点');
        console.log( null == undefined);
        console.log( NaN == NaN);

        /*
        (2)=== 全等于
        ① 若一个是null,一个是 undefined,那么结果是不相等的
        因为null的数据类型是object,而undefined的数据类型是undefined,显然两个虽然都表示空,但是还是不全等的。

        console.log( null === undefined);
        在控制台输出的结果为 false

        console.log(typeof(null));
        在控制台输出的数据类型是 object

        console.log(typeof(undefined));
        在控制台输出的数据类型是 undefined

         */
        console.log( null === undefined);

        console.log(typeof(null));

        console.log(typeof(undefined));
        /*
        ② 如果两个值都是null,或是undefined,那么全等
        console.log( null === null);
        在控制台输出的结果为 true
        console.log( undefined === undefined);
        在控制台输出的结果为 true
         */
        console.log( null === null);

        console.log( undefined === undefined);
        /*
        ③ 若其中至少一个是NaN,那么结果也是不相等
        NaN :表示不是一个数字。
        需要注意的是,NaN是JavaScript 中唯一 一个自身不相等的存在!
        另外:判断一个值是否是NaN,只能使用 isNaN( ) 来判断。

        console.log(typeof(NaN));
        在控制台输出的数据类型是 number

        console.log( NaN === NaN);
        在控制台输出的结果为 false
         */
        console.log(typeof(NaN));

        console.log( NaN === NaN);
    }
</script>
</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值