2011-11-02 81 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驗證器可以在首選項中過濾出這些。

相關問題