下面的javascript代码将原因值设置为false
有人能解释为什么下面的代码将原因值变为false吗下面的javascript代码将原因值设置为false,javascript,Javascript,有人能解释为什么下面的代码将原因值变为false吗 if (reason = "" || reason == null) { return; } alert(reason); 使用reason=”“为原因变量赋值时,使用条件运算符reason==”reason在该代码段之后将false(在大多数情况下),因为赋值运算符使用: reason = ... ^ └── assignment 优先级低于|和=。因此,表达: "" || reason == null
if (reason = "" || reason == null) {
return;
}
alert(reason);
使用
reason=”“
为原因变量赋值时,使用条件运算符reason==”reason
在该代码段之后将false
(在大多数情况下),因为赋值运算符使用:
reason = ...
^
└── assignment
优先级低于|
和=
。因此,表达:
"" || reason == null
将首先对除null
或undefined
以外的reason
的任何值进行false
评估,然后分配回reason
如果整个过程的计算结果为false
,则内部返回永远不会执行
参考:
const test=(reason)=>“”| | reason==null;
日志(测试(“某物”);
console.log(test(“”);
console.log(test(null));
控制台日志(测试(错误));
控制台日志(测试(0));
console.log(测试(未定义))代码>reason=”“
这是分配。您可能需要比较reason==”
,因为您正在分配reason=“”
,它强制为一个虚假的值,而不是。它会按照您的指示将其转换为空字符串:reason=”“
。如果您想要比较,请编写reason==”
或更好的reason==”
。您发布的代码可能会在您的控制台中抛出错误。我可以猜您想检查它,但不想分配给它。此解释正是需要的。