2011-11-02 40 views
6

在Eclipse中,JavaScript的为什么Eclipse有时会警告JavaScript中数组的数组?

var a1 = [[1, 2], [3, 4]]; 

的下面的行产生的警告:

Type mismatch: cannot convert from Number[] to any 
Type mismatch: cannot convert from Number[] to any 

var a2 = [['w', 'x'], ['y', 'z']]; 

生成:

Type mismatch: cannot convert from String[] to any 
Type mismatch: cannot convert from String[] to any 

var a3 = [[1, 2], ['y', 'z']]; 

产生:

Type mismatch: cannot convert from Number[] to any 
Type mismatch: cannot convert from String[] to any 

然而,这些线路都是好的:

var a4 = [[1, 'x'], [3, 'y']]; 
var a5 = [[1, 2]]; 
var a6 = [['x', 'y']]; 

似乎有要与数组的数组,当子阵列包含相同的一个问题原始类型。但是,我不明白为什么,代码似乎执行正常。有人可以解释Eclipse所担心的是什么吗?

+3

只是我的.02 $的主题,但日食Javascript引擎是有点事情上有点p。。它的运作可能只是一个怪癖。 –

回答

6

它看起来像一个错误。 Javascript中基本不存在类型不匹配的情况。

我会冒险猜测这样做的解析器是基于Java解析器,这是一个原始解析器偷看通过。

+1

[这里](https://bugs.eclipse.org/bugs/show_bug.cgi?id=351345)是eclipse中类似错误的一个例子。 –

+0

是的,我认为你一定是对的。还有一些其他可疑的警告,例如“var i; for(i in obj)”给出了“我可能尚未初始化的局部变量”。 –

0

eclipse中的javascript验证器可以在首选项中过滤出这些。

相关问题