gpt4 book ai didi

javascript - 为什么 Javascript minifiers 将 === 转换为 ==?

转载 作者:数据小太阳 更新时间:2023-10-29 05:22:58 24 4
gpt4 key购买 nike

在 Bootstrap 的缩小和未缩小的 JS 文件中的第一行代码之间,立即存在差异:

// bootstrap.js
if (typeof jQuery === 'undefined') { ... }

对比

// bootstrap.min.js
if("undefined"==typeof jQuery)...

(请自行查看:bootstrap.jsbootstrap.min.js)

我很困惑为什么这是允许的。我(也许天真)的理解是 === 始终是一种性能提升,并且通常可以防止出现意外结果(例如,与 0 或 "" 进行虚假比较)。文件大小的小幅增加似乎在性能和错误结果的可能性方面有所损失。任何人都可以在这里阐明吗?

最佳答案

在您引用的特定代码中,它是安全的,因为两个操作数的类型都是不变的,并且都是字符串。不可能节省性能,因为永远不需要任何类型强制。将 == 想象成这样:

function ==(a, b) { // obviously this is fake
if (a === b) return true;
// type coercion ...
}

此外,我个人认为应该使用 === 而不是 == 因为语义 差异而不是因为性能。像这样的微优化对于大多数人编写的绝大多数代码来说并不重要。 (有点讽刺的是,检查是否存在 jQuery 是通过 typeof 比较完成的;这本身就是一个值得怀疑的微优化。) 哎呀那是错误的:)

关于javascript - 为什么 Javascript minifiers 将 === 转换为 ==?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23525091/

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