有人可以解释为什么这个函数返回值为true吗?
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array Object</h2>
<p id="demo"></p>
<script>
var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = isArray(fruits);
function isArray(myArray) {
return myArray.constructor === Array;
}
</script>
</body>
</html>
它返回 true,因为数组是使用Array
构造函数构造的,即使您使用数组文本语法也是如此。
myArray.constructor
等于Array
.constructor
因为属性引用了相同的值 -Array
。为什么?因为它是由构造函数Array
构造的。Array === Array
是真的
myArray.constructor === Array;
两者都有类型">函数",所以它总是被证明是正确的。
让我们采用此代码。
let a=2;
console.log(a === Array);
这将记录false,因为这里我们将数字类型与函数类型进行比较。