gpt4 book ai didi

javascript - 当 "!"运算符与非 bool 变量一起使用时,它在 javascript 中意味着什么?

转载 作者:可可西里 更新时间:2023-11-01 01:58:58 24 4
gpt4 key购买 nike

在阅读 javascript 代码时,我看到了用于非 bool 变量的 ! 运算符。以下是未使用的代码示例。

/**
* loads a resource from a url
* @param {string} url the url of the resource to load
* @param {string} relativeTo the url to load relative to
* @param {function} callback thefunction to call once the file is loaded
* @private
*/
GLGE.Wavefront.prototype.loadFile=function(url,relativeTo,callback){
if(this.relativeTo && !relativeTo) relativeTo=this.relativeTo; //<-- used on a string?
else this.relativeTo=url;
if(!callback) callback=this.loaded; //<-- used on a function?
var req = new XMLHttpRequest();
if(req) {
// request handling code
}
};
req.open("GET", url, true);
req.send("");
}
}

在这个库中,我已经看到许多以这种方式使用此运算符的方法。

有人可以解释当字符串、对象或函数不是像集合这样的 bool 集的一半时,如何/如果可以确定它的“非”函数; truefalse

最佳答案

任何虚假值都会满足if(!insert_variable_here)条件,包括:

  • 错误
  • null
  • 未定义
  • 空字符串''
  • 数字0
  • NaN

如果 callback return 评估了这些值中的任何一个,则条件将得到满足。

即使 null != false,下面的代码也会给你一个警告:

x = null;
if(!x) {
alert('"!null" does evaluate to true');
}

不管 null != false 对你或其他人是否有意义,关键是在 JavaScript 中 null 是一个假值,因此是一个值这将满足我上面列出的第一段代码中的条件。这似乎是您提出的问题——而不是,如果 null 应该或不应该 == false

关于javascript - 当 "!"运算符与非 bool 变量一起使用时,它在 javascript 中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6999291/

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