所以从对 JavaScript 的基本理解来看===比==更快(在大多数情况下)(因为 === 不必执行类型转换)。
最近我看到有人为整个函数/对象/类设置了一组高范围的变量:
var val = {}; // some random object that never changes?
var Obj = {};
然后(可选地重复)稍后:
Obj[key] = val;
然后(可选地重复,并且可能与上面交织在一起)后来比较:
if ( Obj[key] === val ) {...}
我的问题是,为什么(如果是的话)它比完全跳过val并仅使用它更快/更好:
Obj[key] = true; // or = 1, or something?
// ... more code, then later checking:
if ( Obj[key] === true ) // or === 1 or just ( Obj[key] ) because basic existence evaluates to true
我假设使用true或1所损失的性能比将对象与自身进行比较更差,但我想了解为什么?
谢谢!