有人可以向我解释一下以下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
并给出布尔结果,仅此而已。