0

假设这flag是一个未定义的变量。在浏览器中本地运行脚本时,我可以运行 IF 语句,如下所示:

if(flag){
  //do stuff
}

这在浏览器中工作正常。但是在 nodejs 中它会抛出一个错误,说明flag未定义。在nodejs中未定义不被认为是错误的吗?

4

2 回答 2

1

实际上,在浏览器中这样做并不“好”。Chrome 和 Firefox 在他们的控制台中抛出了同样的错误。

在 JavaScript 中,有两种未定义类型:

  • undefined,当你这样做时:
    var flag;
  • 未定义的变量:
    if (flag) { ... }

第一个是错误值,而第二个是错误(当然,假设您从未声明过它)。

于 2013-10-20T15:59:23.067 回答
1

出于性能原因,我相信 Node.js 以类似于严格模式的模式执行。这意味着您不能使用未声明的变量。

你可以做些什么来解决这个问题,检查类型,然后关闭它。例如:

if (typeof flag != 'undefined' && flag) {
    // do something
}

flag这将检查类型,并且仅在未定义变量时尝试使用该变量。

于 2013-10-20T16:28:14.313 回答