簡體   English   中英

“對var os_map = {}使用數組文字符號[]”

[英]“Use the array literal notation []” for var os_map = {}

我不明白為什么當我使用JavaScript文件運行JSLint時收到錯誤消息。

我收到消息var os_map = {}; Problem at line 28 character 36: Use the array literal notation []. os_map = {}; Problem at line 28 character 36: Use the array literal notation []. 如果我在JSLint中運行此代碼 JSLint的選項如下。

/*jslint onevar: true, browser: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, strict: true, newcap: true, immed: true */

聲明對象(, {}應該沒問題,但JSLint建議使用空數組(即[]

:我找到了答案。 我錯了。 var os_map = {}沒有錯。 代碼顯示在錯誤消息中,因為我沒有使用"require strict"; 我收到錯誤消息錯誤。 謝謝回答我的問題。

違規行:

var os_autoload_inputs = new Array('searchInput', 'searchInput2',
                                   'powerSearchText', 'searchText');

JSLint不期望看到new Array構造函數,你應該使用[]代替:

var os_autoload_inputs = ['searchInput', 'searchInput2',
                                   'powerSearchText', 'searchText'];

為什么?

1,克羅克福德不喜歡new

2,可以覆蓋Array對象:

Array = {};
new Array(); // TypeError: Array is not a constructor

3,使用不一致,例如:

var a = new Array(5); // empty 5 elements array
var b = [5]; // 1 element array containing the 5 number on index 0

也可以看看:

改變這個:

var a = new Array(5);

為了這:

var a = new [].constructor(5);

我在該代碼中讀到的第28行是:

var os_autoload_forms = new Array('searchform', 'searchform2', 'powersearch', 'search' );

...使用文字數組語法確實合適:

var os_autoload_forms = ['searchform', 'searchform2', 'powersearch', 'search' ];

不過,應該對第27行說同樣的話。

第16行的問題字符32:使用數組文字符號[]。 如果我在JSLint中運行此代碼。 JSLint的選項如下。

做就是了

var arrayName = [];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM