gpt4 book ai didi

javascript - 假设 undefined 没有被覆盖,在 JavaScript 中真的有多危险?

转载 作者:IT王子 更新时间:2023-10-29 02:46:12 25 4
gpt4 key购买 nike

每次有人提到针对 undefined 进行测试时,it's pointed out undefined 不是关键字所以 it could be set to "hello" , 所以 you should use typeof x == "undefined" 代替。这对我来说似乎很荒谬。没有人会这样做,如果他们这样做了,那就有足够的理由永远不要使用他们编写的任何代码……对吧?

我找到了 one example有人不小心将 undefined 设置为 null,这是为了避免假设 undefined 未被覆盖。但如果他们这样做了,错误就不会被发现,而且我看不出这样做有什么好处。

在 C++ 中,每个人都清楚说 #define true false 是合法的,但是没有人建议您避免使用 true 并使用 0 == 0 代替。你只是假设没有人会成为一个足够大的 SCSS 来做那件事,如果他们这样做了,永远不要再相信他们的代码。

这是否真的咬伤了其他人分配给 undefined(故意)的人并且它破坏了你的代码,或者这更像是一个假设的威胁?我愿意捕获机会让我的代码稍微更具可读性。这真的是个坏主意吗?

重申一下,我不是询问如何防止重新分配未定义。这些技巧我已经看过 100 遍了。我想问的是不使用这些技巧有多危险。

最佳答案

不,我从来没有。这主要是因为我在现代浏览器上进行开发,这些浏览器大多与 ECMAScript 5 兼容。 ES5 标准规定 undefined 现在是只读的。如果你使用严格模式(你应该),如果你不小心尝试修改它,将会抛出一个错误。

undefined = 5;
alert(undefined); // still undefined
'use strict';
undefined = 5; // throws TypeError

应该做的是创建您自己的作用域可变未定义:

(function (undefined) {
// don't do this, because now `undefined` can be changed
undefined = 5;
})();

常量很好。仍然没有必要,但很好。

(function () {
const undefined = void 0;
})();

关于javascript - 假设 undefined 没有被覆盖,在 JavaScript 中真的有多危险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8783510/

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