[英]What is array literal notation in javascript and when should you use it?
[英]“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.