在 NodeJS 中未定义为 falsey
undefined as falsey in nodejs
>假设flag
是一个未定义的变量。在浏览器中本地运行脚本时,我可以运行如下所示的 IF 语句:
if(flag){
//do stuff
}
这在浏览器中工作正常。但是在nodejs中,它会抛出一个错误,指出flag
是未定义的。在nodejs中,未定义不被认为是假的吗?
实际上,在浏览器中这样做并不"好"。Chrome和Firefox在其控制台中抛出相同的错误。
在 JavaScript 中,有 2 种类型的未定义:
- 执行此操作时,
该值undefined
:var flag;
- 未定义的变量:
if (flag) { ... }
第一个是假值,而第二个是错误(当然,假设你从未声明过它)。
我相信出于性能原因,Node.js以类似于严格模式的模式执行。这意味着您不能使用未声明的变量。
要解决此问题,您可以做的是检查类型,然后关闭它。例如:
if (typeof flag != 'undefined' && flag) {
// do something
}
这将检查类型,并且仅在未定义flag
变量时才尝试使用。
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- $window.ga在AngularJS事件中未定义
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 如何消除代码中的未定义和其他问题
- 未捕获的ReferenceError:$未定义
- this.router在AngularJS 2中未定义
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 节点fs.stat名称未定义
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- Jquery未定义函数正在停止其他操作
- AngularJS指令出错-无法读取属性'编译'的未定义
- 这.SOMETHING 总是返回未定义的 - extjs
- 无法获取属性'Id'使用Knockout.js的未定义或空引用API
- Wordpress中带有JQuery Accordion的未定义匿名函数
- 在 NodeJS 中未定义为 falsey