javascript undefined检查不起作用

时间:2011-08-10 16:37:25

标签: javascript undefined

在javascript中我试图检查是否已在数组上定义了“键”,如果它没有创建它并为其分配值0。

以下代码是大型脚本的一部分,它位于一些循环中,用于更改项目,国家/地区和月份的值

console.log(typeof total_searches[project][country][month]);
if(typeof total_searches[project][country][month] !== "number");
    total_searches[project][country][month] = 0;

但由于某种原因,当它第二次超过这个'if'时(所有键都是由那时定义的),它的计算结果为TRUE并为其赋值。

使用chrome进行调试时,console.log显示“number”。

我也试过了     if(!(total_searches [project] [country]中的月份))

但它仍然评估为TRUE并进入

我做错了什么?

感谢

3 个答案:

答案 0 :(得分:5)

if之后你有一个令人讨厌的偷偷摸摸的分号。

if(typeof total_searches[project][country][month] !== "number"); // <-- here

答案 1 :(得分:1)

!==也会进行类型匹配。试试吧!=

答案 2 :(得分:1)

您的if语句后面有一个分号,该语句被视为true - 语句。所以下一行总是被执行,因为它被视为“只是”另一行代码。