我遇到了这条线,我不确定它是如何做到的。数据部分是一个 json 对象,稍后,“myarray”变量用于将新变量分配给数组。
“myItems”对象用于遍历数据对象中的对象的 .map 函数。但我不知道这一切是如何通过下面的代码分配的:
var myItems = data || [], myarray;
我遇到了这条线,我不确定它是如何做到的。数据部分是一个 json 对象,稍后,“myarray”变量用于将新变量分配给数组。
“myItems”对象用于遍历数据对象中的对象的 .map 函数。但我不知道这一切是如何通过下面的代码分配的:
var myItems = data || [], myarray;
它声明了两个全局变量myItems
和myarray
. 如果未定义数据,则为我的项目分配数据,如果未定义数据,则将空数组分配给myItems
.
由于||
Javascript 中变量的真假性质,可以在赋值期间使用运算符。
Javascript 中有几个值等于 false,例如空字符串""
或未定义。其他字符串文字 != "" (例如“Test”)和对象将等同于 true。在赋值中使用时,||
如果第一个表达式等于 true,则不会计算继续进行的代码部分。
这个链接更好地描述了真假。
另一种写法是:
var myItems;
if (data) {
myItems = data;
} else {
myItems = [];
}
var myarray;
这行代码执行以下操作:
myarray
和myItems
变量。data || []
意味着data
如果评估为真(非空),则采用新的空数组。这是一种提供后备/默认值的 javascript 助记符。myItems
所以,最好写成
var myarray;
var myItems = data || [];
在这里,您定义了两个名为data
andmyarray
的变量(注意逗号)。
(||
逻辑或运算符)在这里被轻微滥用。该声明
var myItems = data || [];
如果不虚假,将分配data
to的值。但是,如果它是假的,将被初始化为一个空数组。由于惰性求值, if ,不执行语句的其余部分。myItems
data
myItems
[]
data != false