[英]Javascript: || operator for variable assignment
我有两个小例子代码:
// example 1:
var x;
...
x = x || 'some value'; //assign some value to x if x has no value
...
// example 2:
var y;
...
y || (y = 'some value'); //assign some value to y if y has no value
...
我的问题是:
1.当x已经有值时,x会在示例1中重新分配它的值吗?
2.示例2比示例1更好吗?
(我的英语不好。感谢您的阅读和回答:D)
x
具有真值,则将其分配回自身。 如果没有,则会为其分配默认的'some value'
。 x
将重新分配它的值,因为它已经有一个值
var x = 'foo';
x = x || 'some value';
// result: x = 'foo' //reassigned the value of x
example1
在示例1中,javascript将第一次传递值undefined分配给x。 在第二遍(当你的代码运行时)x带有未定义的值
var x;
然后|| 运算符如下。 考虑:
左|| 对
if(left未定义(全局解析为true),则返回left,否则返回right
所以是的,一个值将被重新分配给x(x本身或1)当x解析为undefined,或者运算符向右解析,然后将1赋值给x。 所以x = x || 1,以x的值结束=== 1
第二个例子没有它添加简单的逻辑(但仍然有效)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.