繁体   English   中英

||的正确用法是什么? 在JavaScript中

[英]What is the correct use of the || in javascript

在下面的代码中,因为s为空d =“ test”,但是如果s =“ hello”,则d =“ hello”。

这是正确的吗? ||的正确使用方法是什么?

var s = null;

var d = s || "test";

alert(d);

|| 是“或”; 理解这里发生的事情有点诡计多端

var a=false;
var b=true;
result=a||b

将给出“结果”为真(因为b为真)。 发生的是:

  • 选中“ a”-错误
  • 之后再检查“ b”(因为尚未获得“真”结果,而一个“真”结果足以使整个||运算符为真)-将其值赋给左侧

如果你有

   var a=true;
   var b="test";
   result=a||b

结果将为真; 因为不需要通过“ ||”逻辑检查其他值

var a=null;
var b="test";
result=a||b;

将首先检查a-它为null,它将转换为“ false”。 b是“ test”,非空,并转换为“ true”。 因此将分配b的

是的,这是使用||的正确方法。 ; 您使用的功能也称为短路评估(因为它会尽早停止评估布尔表达式)

这可以工作,但是如果s评估为“ fassy”值,则将获得默认值,这可能不是您想要的。 一个更健壮但罗word的习语是

d = (typeof s === "undefined") ? "test" : s;

是的,除非s允许为空白或0(也是伪造的值),否则它是正确的

var s = null;
var d = s || "test";

var s = 0;
var d = s || "test";

var s = "";
var d = s || "test";

所有都会导致d被“测试”

|| 是逻辑运算符。 当s不为null时,则(s)的条件为true,因此为d分配s的值,否则将其分配为'test'

|| 是javascript中的OR运算子
所以a||b表示简单a OR b
您所问的问题的解释是id只是在js中做类似的事情,最终您会进入else块

if(null)
if(undefined)

所以s||"test"表示不是null或未定义的那个,在这种情况下是test

是的,|| 符号只是完成“或”的工作。 当第一个条件为真时,它将返回那个条件..否则它将移至下一个条件...就这么简单...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM