gpt4 book ai didi

javascript - 为什么/* */comment 的行为不同? JavaScript 错误?

转载 作者:行者123 更新时间:2023-12-02 15:19:08 24 4
gpt4 key购买 nike

这确实很奇怪。为什么 fx2 返回“未定义”,而 fx1、fx2 和 fx3 正确返回“true”?

<script>

function fx1(item) {
return (item.a == 1)
&& (item.b == 1);
}

function fx2(item) {
return /*(item.a == 1)
&& */(item.b == 1);
}

function fx3(item) {
return true//(item.a= 1)
&& (item.b == 1);
}

function fx4(item) {
return (item.b == 1);
}

alert(fx1({a: 1, b: 1}));
alert(fx2({a: 1, b: 1}));
alert(fx3({a: 1, b: 1}));
alert(fx4({a: 1, b: 1}));

</script>

在线尝试 http://www.codetuning.net/temp/commentedwherejsbug.html

这当然是我的原始代码的简化版本,只是为了重现这个问题。最初我有fx1,然后我认为可能不需要第一个条件(测试项目.a),我将其注释掉,如fx2中所示。为什么这不起作用? fx3 和 fx4 按预期工作,它们都返回 true,除了 fx2 返回未定义。

在 IE11 和 Chrome 47 上测试。

有人能说服我这不是 Javascript 中的错误吗?

最佳答案

function fx2(item) {
return /*(item.a == 1)
&& */(item.b == 1);
}

javascript 会自动在 return 之后放置一个 ; 。将所有 return 语句放在同一行。就像

 return (item.a == 1) && (item.b == 1);

关于javascript - 为什么/* */comment 的行为不同? JavaScript 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34226821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com