关于javascript:检查变量是否未定义

Check if variable is undefined

本问题已经有最佳答案,请猛点这里访问。

我试过这两种方法:

1
2
3
4
5
6
7
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")
1
2
3
4
5
6
7
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")

但在这两种情况下,我都会出错

Cannot read property '0' of undefined

在线if foo[0] == bar.baz[0]

情况是,有时foo会传递给帕格,有时则不会。

foo在传递时是一个数组,如果传递了,我需要根据它的xth元素是否与另一个数组的xth元素相同来做一些事情。


在JS中,"未定义"是错误的…看起来bar.baz可能是你的罪魁祸首。


您可以使用typeof检查变量是否为undefined。它总是返回一个string

1
2
3
4
5
6
7
8
9
10
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]);
}