很久之前我写过一篇博客,这里有关于短路与,短路或的介绍:
https://blog.csdn.net/u010563350/article/details/80054801
var obj = {
a: 2
};
obj = obj || {
a: 1
};
console.log(obj);
js中可以利用这个特点去赋值,类似于三目运算符。
上面例子中,如果obj为null
,undefined
,false
,""
,0
,NaN
,那么为false,那么就把右边的赋给obj。
类似于:
var obj = obj有值吗?obj:{a:1};
为什么js要利用这个特点去赋值呢?因为js是弱类型的语言,只有在运行到登号右边才知道这个变量是什么数据类型,所以假如要给他默认值的话,就很不好给嘛。
java是强类型语言,变量不给赋值默认会赋初始值。