我试过这两个:
if foo if foo[0] == bar.baz[0] input.form-control-success(type="text") else input.form-control-danger(type="text") else input(type="text")
unless foo === undefined if foo[0] == bar.baz[0] input.form-control-success(type="text") else input.form-control-danger(type="text") else input(type="text")
但在这两种情况下我都会收到错误
无法读取未定义的属性“0”
在if foo[0] == bar.baz[0]
行。
情况是,有时候foo
被传递给帕格,有时候不是。
foo
是一个数组,如果它被传递,我需要根据它的x th 元素是否与另一个数组的x 相同来做某事元素。
答案 0 :(得分:2)
undefined在js中是假的...看起来像bar.baz可能是你的罪魁祸首。
答案 1 :(得分:1)
您可以使用typeof检查变量是否为undefined
。它总是返回string
。
if (typeof foo === 'undefined') {
console.log('foo is undefined');
}
var foo = ['one', 'two', 'three'];
if (typeof foo !== 'undefined') {
// access elements
console.log(foo[0] + ', ' + foo[1] + ', ' + foo[2]);
}