gpt4 book ai didi

javascript - 为什么我不能将 NODE_ENV 设置为未定义?

转载 作者:IT老高 更新时间:2023-10-28 22:02:52 25 4
gpt4 key购买 nike

我正在尝试通过更改和测试变量 NODE_ENV 的值来实现我的代码在不同 Node.js 环境中正常工作的测试。

我一直在努力理解为什么下面的代码:

process.env.NODE_ENV = undefined;

var test = process.env.NODE_ENV || 'empty';

console.log(test);

输出 undefined 而不是 empty

这是我在这里缺少的一些 JavaScript 或 Node.js 功能吗?

在 Node.js 版本下测试:0.10.47、4.6.1 和 6.9.1


更新

作为这种特定情况的解决方法,我必须执行以下操作:

delete process.env.NODE_ENV; // now it is undefined

最佳答案

非常微妙:根据 the documentation :

Assigning a property on process.env will implicitly convert the value to a string.

所以你从 process.env.NODE_ENV 得到 "undefined",而不是 undefined"undefined" 是真实的,所以 "undefined"|| “空”“未定义”

你可以看到,如果你稍微修改一下你的脚本:

'use strict';

process.env.NODE_ENV = undefined;

console.log("process.env.NODE_ENV", typeof process.env.NODE_ENV, process.env.NODE_ENV);
var test = process.env.NODE_ENV || 'empty';

console.log("test", typeof test, test);
console.log("process.env.NODE_ENV", typeof process.env.NODE_ENV, process.env.NODE_ENV);

...输出:

process.env.NODE_ENV string undefinedtest string undefinedprocess.env.NODE_ENV string undefined

关于javascript - 为什么我不能将 NODE_ENV 设置为未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40203869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com