x = ( typeof x != 'undefined' && x instanceof Array ) ? x : [];
据我所知,如果定义了x并且它是一个数组,它会在两者之间做什么?并且:如果未定义或它不是数组,它将执行[]。什么是[]?
有谁知道我可以在哪里获得这个如何运作的例子和其他速记技巧,或者你能解释一下这里发生了什么吗?
我真的不明白它是如何创建数组的
答案 0 :(得分:2)
[]
是一个空数组。
因此,如果x
是undefined
或不是数组,则将其设置为空数组。
这与:
相同if (!( typeof x != 'undefined' && x instanceof Array )) {
x = [];
}
此处有关于条件(三元)运算符的更多信息:
http://msdn.microsoft.com/en-us/library/windows/apps/be21c7hw%28v=vs.94%29.aspx
默认参数的另一个有用的简写是:
function (x) {
x = x || 7;
}
只要x
(7
不是x == false
,x
,null
,就会将undefined
设置为false
},''
(空字符串)或0
)