![](/img/trans.png)
[英]Can someone explain to me what this JavaScript/Ajax part of code does?
[英]Javascript - Can someone explain to me exactly what this does?
大约9个月前,我开始在一家新公司里工作,并在JS中不断遇到这种情况。 它有效,并且我一直在使用它来与以前的开发人员编写代码的方式保持一致,但是我不完全知道它的作用。 我曾尝试使用Google搜索,但不确定要搜索的内容。
!options && (options = {})
在我看来,这是一种三元条件,但我不太确定。
一个更好的例子是:
function init(options) {
!options && (options = {});
}
init();
该代码等效于:
if(!options)
options = {};
这是运算符短路的一个示例:仅当第一个表达式( !options
)为true时,才对第二个表达式( options = {}
)求值,因为如果第一个表达式为false,则整个&&
语句将自动假。
特别是在使用“ and”( &&
)和“ or”( ||
)运算符时,会发生这种情况。
MDN的页面对此进行了详细描述。
如果没有给出值,这是将options
初始化为{}
的一种方式。
第一个!options
表示“选项是虚假的 ”。
因此,如果options
为null
, undefined
等,它将继续通过&&
语句并设置options = {}
初始化。
可以这样写,这更加清楚:
if (!options) {
options = {};
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.