老师这里if语句的条件为什么不用写==true呢?

来源:2-5 选择练习

慕田峪6072870

2020-12-15 16:47:46

# 具体遇到的问题

# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

<!DOCTYPE html>

<html lang="en">


<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>


<body>

    <script>

        var num = 0;

        var num1 = 1;

        var str = "";

        var str1 = 'IMOOC';

        var blean = false;

        if ((num || num1 || str1) == true) {

            alert('hello');

        }

        if ((num1 && str1 && blean) == true) {

            alert('world');

        }

        if ((!blean || str || num) == true) {

            alert('hello world');

        }

    </script>

</body>


</html>


写回答

1回答

好帮手慕星星

2020-12-15

同学你好,if判断条件只能是true才会执行下面的语句 ,无论条件为true还是条件转化后为true。

代码中逻辑或和逻辑与的返回值可能不是true,但是会自动进行隐式转化为布尔值,不需要添加是否等于true的判断。例如第一个判断中逻辑或的返回值为1

http://img.mukewang.com/climg/5fd87cce09ebc45604400033.jpg

http://img.mukewang.com/climg/5fd87cd5097e267e01220023.jpg

因为num的值为0,转化为布尔值为false,所以会进行下一个num1的判断,num1的值为1,转化为布尔值为true,所以返回值是num1的值,也就是1。1转化为布尔值为true,所以会执行if语句,也就不需要添加==true的判断了。


简单理解就会if条件在不是布尔值的时候会进行隐式转化为布尔值,不需要添加额外的判断。

祝学习愉快!

0

0 学习 · 15276 问题

查看课程