2011-08-10 33 views
0

在javascript中我想检查一个“关键”已被定义在一个数组上,并且如果它不创建它并为其赋值0。JavaScript未定义检查不工作

下面的代码是一个大的脚本的一部分,它是一些循环,即改变项目,国家的价值,一个月内

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

但由于某些原因,当它在这个“如果”了第二次(所有的键都被定义),它评估为TRUE并将0赋值给它。

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

我也尝试 如果(!(月total_searches [项目] [国家]))

,但它仍然被评估为TRUE,去的

我到底做错了什么?

谢谢

+0

那么在'log'中,它是一个数字,在'if'子句中它不是? – pimvdb

回答

5

if之后你得到了一个令人讨厌的鬼祟分号。

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

!!!!!!!!不能相信我没有看到。谢谢! – Jon

1

!==也做类型匹配。试试吧!=

1

你有你的if语句来,这被看作是true语句来后一个分号。所以下一行总是被执行,因为它被看作是'只是'另一行代码。

相关问题