javascript-此分配结构称为什么?而且您可以在Php中做到吗?
作者:互联网
我经常在Javascript中使用以下构造:
var foo = other_var || "default_value";
在Javascript中,如果左侧是虚假的,则将分配右侧的值.
它非常方便,并节省了编写更长和不必要的显式三元表达式的时间.
这种结构有名称吗?
奖励:在Php中不使用三元运算符就可以做到这一点吗?
PS:另一个变体是如果您没有获得真实值,则抛出错误,而不是提供默认值:
var foo = something || alert("foo is not set!");
解决方法:
逻辑或(通常||)运算符在许多语言中都大不相同.
在某些语言中(例如C,C),它的工作方式是:“评估左侧;如果为true,则返回true,否则评估右侧,否则为true或false.”结果始终是布尔值.
在其他语言(例如Javascript,Python,我也相信PHP)中,它更像是:“评估左侧;如果为true,则返回它,否则评估右侧并返回结果.”然后结果可以是任何类型,您可以执行类似以下的构造:
a =(b || c); //等于a = b? b:c;
或相当花哨:
function compare(A, B) { // -1 if A<B, 0 if A==B, 1 if A>B
return B.x - A.x || B.y - A.y;
}
标签:variable-assignment,logical-operators,expression,javascript 来源: https://codeday.me/bug/20191023/1915054.html