我有以下代码:

if (Array.length === maxArrayLength) {
        alert("test1234");
        Array= [];
    }


当数组Array的长度等于变量maxArrayLength时,它应该显示一条消息,但是,它什么也不做。

但是,如果我将maxArrayLength替换为2或其他数字,它将起作用。

maxArrayLength中有一个值,因为当我在console.log(maxArrayLength);语句之前(和之后)执行if时,我会得到一个值。

如果有帮助,它位于Chrome扩展程序中。 maxArrayLength来自chrome.local.storage

chrome.storage.sync.get('maxArray', function (items) {
    maxArray = items.maxArrayLength;
    console.log(maxArrayLength);
});


此处的console.log也适用。我很困惑怎么了?好像if语句无法访问maxArrayLength变量...?

最佳答案

根据typeof(maxArrayLength)检查typeof(Array.length)

通过使用===,您不仅要说值相同,还要说数据类型。

例如:

"3" == 3 // true
"3" === 3 // false

关于javascript - Javascript(如果条件不适用于Chrome扩展程序),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25173120/

10-12 13:02