我的javascript函数逻辑出了什么问题?

时间:2016-11-28 16:40:04

标签: javascript arrays function if-statement

我的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;
}

我仍然不明白为什么第一个不起作用,并且真的很感激解释。

1 个答案:

答案 0 :(得分:3)

当您在JavaScript中比较两个对象时,比较是询问“这些对象是否是同一个对象?”,而不是“这些对象是否相同?”。

您正在比较两个不同的空数组。