gpt4 book ai didi

javascript - 在 JavaScript 中比较 null 与 undefined 的速度

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

我刚刚运行了一个非常简单的 JavaScript performance test (不要问为什么)。测试声明了一个变量,但没有给它赋值:

var x;

然后比较值变量与 nullundefined 比较的速度,换句话说:

var y = (x == null);var y = (x == undefined);

我期待与 undefined 的比较是禁食的。事实上它离得很远。与 null 的比较速度最快,快了大约 80%。

我上面描述的结果来自在 Chrome(版本 13)中运行测试。在 Firefox 中运行它们产生的结果非常接近我的预期(与 undefined 的比较比与 null 的比较快,尽管非常微小)。

所以,我的问题是,这可能是什么原因造成的?为什么 Chrome 似乎非常喜欢与 null 进行比较?

为了快速引用,这里是结果的屏幕截图:

enter image description here

最佳答案

null 是一个不能被覆盖的保留关键字,所以当你对 null 进行比较时,你所要做的就是一次比较。

但是,当您检查 undefined 时,引擎必须进行类型查找然后进行比较,这意味着它实际上要求稍微高一些。


如果你需要实际检查是否有未定义的东西,你应该使用

if(typeof notSet == "undefined"){ }

证明

试一试...并在您的 JavaScript 控制台中将某些内容设置为 null

null = "will error";
// Errors with --> ReferenceError: invalid assignment left-hand side

但是,如果您尝试使用 undefined 进行操作,它不会出错。这并不是说您可以覆盖 undefined,因为您不能,而是说 undefined 是它自己的原始类型。

null 和 undefined 之间唯一真正的相似之处在于,它们都可以被强制转换为 bool 值 false。

关于javascript - 在 JavaScript 中比较 null 与 undefined 的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7283577/

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