【发布时间】:2019-02-01 03:57:03
【问题描述】:
我正在尝试理解以下输出:
'use strict';
console.log(Object.getPrototypeOf([]));
// []
console.log(Object.getPrototypeOf(Array.prototype));
// {}
console.log(Object.getPrototypeOf([]) == Array.prototype);
// true
console.log(Object.getPrototypeOf([]) === Array.prototype);
// true
console.log([]=={});
// false
console.log([]==={});
// false
特别是,为什么第 6 行和第 8 行被评估为 true,而第 10 和 12 行被评估为 false.#
编辑:我在第 6 行和第 8 行犯了一个愚蠢的错字,现在我已经对其进行了编辑。这使得问题不同。道歉。
【问题讨论】:
-
这里有 2 种算法用于
==和===比较:ecma-international.org/ecma-262/5.1/#sec-11.9.3 和 ecma-international.org/ecma-262/5.1/#sec-11.9.6。它可能有助于理解差异。
标签: javascript arrays javascript-objects