有人可以向我解释一下以下JavaScript代码为什么会产生321警报,而PHP代码却产生1。

我知道PHP代码会评估表达式并返回true或false。我不知道的是为什么在JavaScript中它像三元运算符一样工作。这仅仅是用语言实现事物的方式吗?

var something = false;
var somethingelse =(某事|| 321);
警报(其他); //警报321

$ var ='123';
$ other =($ var || 321);
回声$ other; //打印1

谢谢!

最佳答案

这仅仅是用语言实现事物的方式吗?


是的,JavaScript有所不同。表达式(something || 321)表示如果something的值为falsy,则使用默认值321

在条件表达式中,||像往常一样充当逻辑OR,但实际上它执行相同的合并操作。您可以使用以下方法对此进行测试:

if ((0 || 123) === true)
    alert('0 || 123 evaluates to a Boolean');
else
    alert('0 || 123 does not evaluate to a Boolean');


在PHP中,||运算符执行逻辑OR并给出布尔结果,仅此而已。

10-07 16:11