Javascript 在nodejs中未定义为false
假设Javascript 在nodejs中未定义为false,javascript,node.js,if-statement,undefined,Javascript,Node.js,If Statement,Undefined,假设标志是一个未定义的变量。在浏览器中本地运行脚本时,我可以运行类似以下的IF语句: if(flag){ //do stuff } 这在浏览器中运行良好。然而,在nodejs中,它抛出一个错误,表示标志未定义。在nodejs中未定义不被认为是错误的吗 实际上,在浏览器中这样做并不“好”。Chrome和Firefox在其控制台中抛出相同的错误 在JavaScript中,有两种未定义的类型: 执行此操作时,未定义的值: var标志 未定义的变量: if(flag){…} 第一个是错误值,第
标志
是一个未定义的变量。在浏览器中本地运行脚本时,我可以运行类似以下的IF语句:
if(flag){
//do stuff
}
这在浏览器中运行良好。然而,在nodejs中,它抛出一个错误,表示标志
未定义。在nodejs中未定义不被认为是错误的吗 实际上,在浏览器中这样做并不“好”。Chrome和Firefox在其控制台中抛出相同的错误
在JavaScript中,有两种未定义的类型:
- 执行此操作时,
未定义的值:
var标志代码>
- 未定义的变量:
if(flag){…}
第一个是错误值,第二个是错误值(当然,假设您从未声明过它)。出于性能原因,我认为Node.js以类似的模式执行。这意味着您不能使用未声明的变量 你能做的就是检查类型,然后离开。例如:
if (typeof flag != 'undefined' && flag) {
// do something
}
这将检查类型,只有在未定义
标志时才尝试使用变量 NodeJS对使用以前没有声明过的变量更为严格,变量本身是否未声明(未定义),或者变量的值是否未定义?这似乎很奇怪。我想知道,在这个意义上,他们是在试图保护我不犯什么样的错误,因为变量是未声明的。