JavaScript의 배열 문자 표기법은 무엇이며 언제 사용해야합니까?
-
11-09-2019 - |
문제
JSLINT는 다음 오류를 제공합니다.
11 라인 문자 33의 문제 : 배열 리터럴 표기법을 사용하십시오 [].
var myArray = new Array();
배열 리터럴 표기법은 무엇이며 왜 대신 사용하기를 원하는가?
여기에 보여줍니다 new Array();
잘 작동해야합니다 ... 내가 놓친 것이 있습니까?
해결책
배열 리터럴 표기법은 빈 브래킷 만 사용하여 새 배열을 정의하는 곳입니다. 예에서 :
var myArray = [];
배열을 정의하는 "새로운"방법이며, 더 짧거나 클리너라고 생각합니다.
아래의 예는 그들 사이의 차이점을 설명합니다.
var a = [], // these are the same
b = new Array(), // a and b are arrays with length 0
c = ['foo', 'bar'], // these are the same
d = new Array('foo', 'bar'), // c and d are arrays with 2 strings
// these are different:
e = [3], // e.length == 1, e[0] == 3
f = new Array(3); // f.length == 3, f[0] == undefined
다른 팁
또한보십시오: var x = new array ()의 문제점;
크록 포드 논쟁 외에도, 다른 언어는 동일한 구문을 사용하는 유사한 데이터 구조를 가지고 있기 때문이라고 생각합니다. 예를 들어, 파이썬에는 목록과 사전이 있습니다; 다음 예제를 참조하십시오.
// this is a Python list
a = [66.25, 333, 333, 1, 1234.5]
// this is a Python dictionary
tel = {'jack': 4098, 'sape': 4139}
Python이 문법적으로 올바른 JavaScript의 방법이 깔끔하지 않습니까? (예, 엔딩 세미 콜론은 누락되었지만 JavaScript에도 필요하지 않습니다).
따라서 프로그래밍에서 일반적인 패러다임을 재사용함으로써 우리는 모든 사람이 할 필요가없는 것을 다시 배치하지 않아도됩니다.
크로크 포드 논쟁 외에도 JSPerf는 더 빠르다고 말합니다. http://jsperf.com/new-vs-literal-array-declaration
@ecmode jsperf를 살펴본 후 몇 가지 추가 테스트를 수행했습니다.
푸시를 사용하여 배열에 추가 할 때 새 배열 ()은 Chrome에서 상당히 빠릅니다.
http://jsperf.com/new-vs-literal-array-declaration/2
index를 추가하는 것이 []에 대해 약간 빠릅니다.