假设这flag
是一个未定义的变量。在浏览器中本地运行脚本时,我可以运行 IF 语句,如下所示:
if(flag){
//do stuff
}
这在浏览器中工作正常。但是在 nodejs 中它会抛出一个错误,说明flag
未定义。在nodejs中未定义不被认为是错误的吗?
假设这flag
是一个未定义的变量。在浏览器中本地运行脚本时,我可以运行 IF 语句,如下所示:
if(flag){
//do stuff
}
这在浏览器中工作正常。但是在 nodejs 中它会抛出一个错误,说明flag
未定义。在nodejs中未定义不被认为是错误的吗?
实际上,在浏览器中这样做并不“好”。Chrome 和 Firefox 在他们的控制台中抛出了同样的错误。
在 JavaScript 中,有两种未定义类型:
undefined
,当你这样做时:var flag;
if (flag) { ... }
第一个是错误值,而第二个是错误(当然,假设您从未声明过它)。
出于性能原因,我相信 Node.js 以类似于严格模式的模式执行。这意味着您不能使用未声明的变量。
你可以做些什么来解决这个问题,检查类型,然后关闭它。例如:
if (typeof flag != 'undefined' && flag) {
// do something
}
flag
这将检查类型,并且仅在未定义变量时尝试使用该变量。