这个简写陈述如何实际起作用? “x =(typeof x!='undefined'&& x instanceof Array)?x:[];”

时间:2012-02-29 00:37:02

标签: javascript

x = ( typeof x != 'undefined' && x instanceof Array ) ? x : [];

据我所知,如果定义了x并且它是一个数组,它会在两者之间做什么?并且:如果未定义或它不是数组,它将执行[]。什么是[]?

有谁知道我可以在哪里获得这个如何运作的例子和其他速记技巧,或者你能解释一下这里发生了什么吗?

我真的不明白它是如何创建数组的

1 个答案:

答案 0 :(得分:2)

[]是一个空数组。

因此,如果xundefined或不是数组,则将其设置为空数组。

这与:

相同
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;
}

只要x7不是x == falsexnull,就会将undefined设置为false },''(空字符串)或0