gpt4 book ai didi

javascript的执行顺序

转载 作者:行者123 更新时间:2023-11-29 20:24:09 26 4
gpt4 key购买 nike

var c = false;
if(c=[] && c.length==0)alert('hi');

hi 没有被提醒是因为 c 在执行 && 的第二个操作数时仍然为 false,谁能解释一下 if 条件中的 bool 操作数是如何执行的以及执行顺序是什么?

最佳答案

我相信这只是一个优先级问题 - &&= 绑定(bind)得更紧。您的代码相当于:

if (c = ([] && c.length == 0))
{
alert('hi');
}

因此它为 c 分配值 false 而不是空数组。

试试这个:

if ((c = []) && c.length == 0)
{
alert('hi');
}

编辑:为了解决 Tryptich 的评论 - 我在发布之前确实尝试过这个 :) 正如 CMS 所说,一个空数组被认为是正确的。试试这个:

if (c = [])
{
alert('empty array is true');
}

甚至只是这样:

if ([])
{
alert('empty array is true');
}

我在发布之前检查了规范 - 我有点惊讶空数组被认为是真实的,但它是......

关于javascript的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2091538/

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