我的Javascript功能出现问题,我不了解某些内容,只是寻找一些清晰度。
我有一个功能:
function Test (array) {
if (array === []) {
return "the array is empty";
} else {
return array;
}
当我将此函数传递给一个空数组时,它返回空数组,完全跳过我的if语句的第一部分(这是我不理解的部分,为什么跳过那部分?我的理解是它因为我传递它的数组实际上是空的,所以会返回我的字符串语句。如果我删除了else语句,它将返回“undefined”。
请注意! :我知道这个问题的解决方案是设置我的“if”语句来比较我传递它的数组的长度。
前:
function Test (array) {
if (array.length === 0) {
return "the array is empty";
} else {
return array;
}
我仍然不明白为什么第一个不起作用,并且真的很感激解释。
答案 0 :(得分:3)
当您在JavaScript中比较两个对象时,比较是询问“这些对象是否是同一个对象?”,而不是“这些对象是否相同?”。
您正在比较两个不同的空数组。