gpt4 book ai didi

javascript - 为什么这个 JavaScript 表达式的计算结果为 false?

转载 作者:行者123 更新时间:2023-11-28 15:05:03 24 4
gpt4 key购买 nike

我编写了一个简单的函数,它在第一次调用后会自行失效:

var nullify = function(){
nullify = null;
return 1;
};

如果我调用它两次,如下所示:

console.log(nullify());
console.log(nullify);

那么第一个表达式将返回 1 ,另一个将评估为 null 。到目前为止一切都清楚了。

但是,如果我在单个表达式中执行此操作并将其包装在函数中:

var fun = function(f){
return f() && !f;
}

然后,由于某种原因:

console.log(fun(nullify));

评估为false ,而我希望它是 true ,因为第一个操作数将返回 1另一个是 null 的否定, true

nullify 时,就会对右侧操作数求值。函数已经调用 nullify = null , 是对的吗?我缺少什么?

最佳答案

What am I missing?

您的 fun 函数正在测试变量 f,它仍然绑定(bind)到您传入的函数,而不是变量 nullify (它的值确实是 null)。

关于javascript - 为什么这个 JavaScript 表达式的计算结果为 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39353567/

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