在javascript中| |的正确用法是什么
在下面的代码中,因为s为null d=“test” 但是如果s=“hello”,那么d将=“hello” 这是正确的吗?正确的使用方法是什么||在javascript中| |的正确用法是什么,javascript,Javascript,在下面的代码中,因为s为null d=“test” 但是如果s=“hello”,那么d将=“hello” 这是正确的吗?正确的使用方法是什么|| var s = null; var d = s || "test"; alert(d); 是,它是正确的,除非允许s为空或0,这也是错误的值 var s = null; var d = s || "test"; var s = 0; var d = s || "test"; var s = ""; var d = s || "test";
var s = null;
var d = s || "test";
alert(d);
是,它是正确的,除非允许s为空或0,这也是错误的值
var s = null;
var d = s || "test";
var s = 0;
var d = s || "test";
var s = "";
var d = s || "test";
所有这些都将导致d为“test”
|
是一个逻辑运算符。当s不为空时,则(s)的条件为真,因此d被指定为s的值,否则它被指定为“test”这是可行的,但如果s的计算结果为“falsy”值,您将获得默认值,这可能不是您想要的。一个更有力但冗长的习语是
d = (typeof s === "undefined") ? "test" : s;
|
是javascript中的或运算符
因此a | | b
简单地说就是a或b
对您提出的问题的解释是,您只需在js中执行类似的操作,最终就会进入else块
if(null)
if(undefined)
因此,s | | |“test”
将意味着哪个值不为null或未定义
在这种情况下,哪个是test是“或”;理解这里发生的事情有点诡计
var a=false;
var b=true;
result=a||b
将给出“结果”为真(如b为真)。发生的情况是:
- 已选中“a”-它为false
- 之后检查“b”(因为尚未获得“真”结果,一个“真”结果足以使整个| |运算符为真)-它的值将分配到左侧
如果你有
var a=true;
var b="test";
result=a||b
结果会是真的;因为没有其他值需要通过“| |”逻辑进行检查
与
将首先检查a-它为null,这将转换为“false”。b是“test”,非空,并转换为“true”。因此,b的值将被赋值
是的,这是使用| |的正确方法;您使用的功能也称为短路求值(因为它会尽早停止求值布尔表达式)是的,正确,| |符号只执行OR的工作。当第一个条件为真时,它将返回该条件。。否则它将移动到下一个。。。虽然很简单
var a=null;
var b="test";
result=a||b;