这有什么区别...
(function () {})() === (function () {})()
// => true
还有这个……
(function () {}) === (function () {})
// => false
前一个比较的计算结果为 true
,而后者的计算结果为 false
。这是为什么?
最佳答案
(function () {})()
是一个 IIFE(立即调用的函数表达式)。这意味着,它是一个立即执行的函数,它的实际值是它的 return
值。此函数没有 return
语句,因此值为 undefined
。 undefined === undefined
为 true
。
(function () {})
然而,是一个函数。函数不是原始值,而是像对象。在 JavaScript 中,当比较对象(或函数)时,比较的是引用。因为 (function () {})
创建了一个新 函数,所以它们不是相同 函数,因此比较结果是 假
。
关于javascript - 这两个比较有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33337891/