Javascript函数输出|构造函数类型

Javascript函数输出|构造函数类型,javascript,constructor,typeof,Javascript,Constructor,Typeof,有人能解释一下为什么这个函数返回值为true吗 <!DOCTYPE html> <html> <body> <h2>JavaScript Array Object</h2> <p id="demo"></p> <script> var fruits = ["Banana", "Orange", "Apple", "Mango"]; document.getElementById("demo").

有人能解释一下为什么这个函数返回值为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>

JavaScript数组对象

var水果=[“香蕉”、“橙子”、“苹果”、“芒果”]; document.getElementById(“demo”).innerHTML=isArray(水果); 函数isArray(myArray){ 返回myArray.constructor==数组; }
两者都有类型“function”,因此结果总是true

让我们看看这段代码

let a=2;
console.log(a === Array);

这将记录false,因为在这里我们将数字类型与函数类型进行比较。

它返回true,因为数组是用
数组
构造函数构造的,即使使用数组文字语法。

myArray.constructor
等于
array
,因为
.constructor
属性引用了相同的值-
array
。为什么?因为它是由构造函数
数组
构造的<代码>数组===数组
为真

代码非常简单。我不明白你为什么会期望它不是真的。你还不明白什么?你希望它会返回什么?我已经用我想问的问题编辑了这个问题。你能解释一下而不是问我吗?我还是不明白你为什么困惑。除了
数组
,你希望数组的构造函数是什么?我不熟悉javascript构造函数。我不确定myArray.constructor==数组是什么;意味着?@Auine-我开一辆Leon。它是一辆汽车。这是一辆汽车。事实上它是一辆汽车并不能阻止它成为一辆汽车。事实上,
Array
是一个函数,但它不能阻止它也成为一个对象。函数是对象的子集,不是完全分离的数据类型。两者都有类型“函数”,但它们的值如何相等?as===需要相等的值和相等的类型。谢谢,你也可以解释一下你的jsbin例子。@rohitwtbs-他们驳斥了错误答案中的陈述。对不起,我没听懂。我想知道===运算符在不同场景中检查的内容。@rohitwtbs-它检查两个值是否相同(在每个场景中)。
let a=2;
console.log(a === Array);