对具有空数组的变量使用 OR 运算的目的是什么?
What is the purpose of using OR operation on a varible with empty array?
我在我的一个项目页面中的 google 分析脚本中发现了该实现。
我想知道第一行的目的是什么:"myArray || [] "" ?
为什么要对一个数组和另一个空数组进行OR运算?
var myArray = myArray || [];
myArray.push(['_setAccount', 'UA-39103830-1']);
myArray.push(['_trackPageview']);
如果您观察下面的代码片段,它会检查虚假值,例如 undefined
null
、0
、-0
、0n
、""
和 NaN
(还有空数组 []
) 如果是这样,它将分配权利。
var arr; // undefined
var arr = arr || [];
console.log(arr) // Output: []
var arr = null; // null
var arr = arr || [];
console.log(arr) // Output: []
var arr = ""; // empty string
var arr = arr || [];
console.log(arr) // Output: []
var arr = "Mr.7"; // string
var arr = arr || [];
console.log(arr) // Output: Mr.7
此 "or" 操作将一个空数组分配给 myArray
(如果它不存在)。上面的代码在功能上等同于:
if(myArray == null || myArray==undefined)
myArray = [];
myArray.push(['_setAccount', 'UA-39103830-1']);
myArray.push(['_trackPageview']);
我在我的一个项目页面中的 google 分析脚本中发现了该实现。
我想知道第一行的目的是什么:"myArray || [] "" ?
为什么要对一个数组和另一个空数组进行OR运算?
var myArray = myArray || [];
myArray.push(['_setAccount', 'UA-39103830-1']);
myArray.push(['_trackPageview']);
如果您观察下面的代码片段,它会检查虚假值,例如 undefined
null
、0
、-0
、0n
、""
和 NaN
(还有空数组 []
) 如果是这样,它将分配权利。
var arr; // undefined
var arr = arr || [];
console.log(arr) // Output: []
var arr = null; // null
var arr = arr || [];
console.log(arr) // Output: []
var arr = ""; // empty string
var arr = arr || [];
console.log(arr) // Output: []
var arr = "Mr.7"; // string
var arr = arr || [];
console.log(arr) // Output: Mr.7
此 "or" 操作将一个空数组分配给 myArray
(如果它不存在)。上面的代码在功能上等同于:
if(myArray == null || myArray==undefined)
myArray = [];
myArray.push(['_setAccount', 'UA-39103830-1']);
myArray.push(['_trackPageview']);