6-5的输出结果怎么和规则不同?

来源:6-5 编程练习

大宝的爸爸

2019-10-02 09:26:42

老师,这道题怎么数出来的答案是0和imooc?

根据规则,“两个操作数时,如果第一个操作数隐式类型转化后为true,则返回下一个操作数;如果第一个操作数隐式类型转化后为false,则返回第一个操作数。”

“如果有一个操作数是undefined,则返回undefined。”

即这道题不是应该输出:undefined;1?

<!DOCTYPE html>

 <html> 

<head> 

<meta charset="UTF-8"> 

<title>逻辑操作符</title>

 </head>

<body> 

<script> 

//补充代码

 var x=0, y=undefined, m=1, n="immoc"; 

document.write((x && y)+"<br/>"); 

 document.write((m && n)+"<br/>"); 

 </script>

 </body> 

</html>

写回答

1回答

好帮手慕码

2019-10-06

同学你好!

首先, 我们要知道&&逻辑与是一个短路操作符, 当有一个操作数是假的时候就返回这个操作数,否则一直往后执行,返回最后一个操作数, 然后我们在来分析这段代码:

因为x的值为0, 通过隐士类型转换成布尔值为false, 所以x&&y这句代码会直接返回x的值0,不再往后执行了,就返回undefined;

因为m的值为1, 通过隐士类型转换成布尔值为true, 所以m&&n这句代码继续向后执行, 返回最后一个操作数n的值,就是immoc;

如果帮助到了你, 欢迎采纳,祝学习愉快~~

0

0 学习 · 40143 问题

查看课程