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回答
同学你好!
首先, 我们要知道&&逻辑与是一个短路操作符, 当有一个操作数是假的时候就返回这个操作数,否则一直往后执行,返回最后一个操作数, 然后我们在来分析这段代码:
因为x的值为0, 通过隐士类型转换成布尔值为false, 所以x&&y这句代码会直接返回x的值0,不再往后执行了,就返回undefined;
因为m的值为1, 通过隐士类型转换成布尔值为true, 所以m&&n这句代码继续向后执行, 返回最后一个操作数n的值,就是immoc;
如果帮助到了你, 欢迎采纳,祝学习愉快~~
相似问题