자바 스크립트의 배열 리터럴 표기법은 무엇이며 언제 사용해야합니까?
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 ();
Crockford의 주장을 제외하고는 다른 언어가 동일한 구문을 사용하는 유사한 데이터 구조를 가지고 있기 때문이라고 생각합니다. 예를 들어, 파이썬에는 목록과 사전이 있습니다 . 다음 예를 참조하십시오.
// this is a Python list
a = [66.25, 333, 333, 1, 1234.5]
// this is a Python dictionary
tel = {'jack': 4098, 'sape': 4139}
파이썬이 문법적으로도 올바른 자바 스크립트가 얼마나 깔끔하지 않습니까? (예, 끝 세미콜론이 누락되었지만 Javascript에도 필요하지 않습니다.)
따라서 프로그래밍에서 공통 패러다임을 재사용함으로써 우리는 모든 사람이 필요하지 않은 것을 다시 배우지 않아도됩니다.
Crockford 주장을 제외하고 jsPerf는 더 빠르다고 말합니다. http://jsperf.com/new-vs-literal-array-declaration
@ecMode jsperf를 살펴본 후 몇 가지 추가 테스트를 수행했습니다.
푸시를 사용하여 배열에 추가 할 때 new Array ()는 Chrome에서 상당히 빠릅니다.
http://jsperf.com/new-vs-literal-array-declaration/2
색인을 사용하여 추가하는 것이 []의 경우 약간 더 빠릅니다.
'Programing' 카테고리의 다른 글
C #에서 트리를 순회하는 재귀 람다 식 (0) | 2020.11.21 |
---|---|
AppStore가없는 iPhone 앱 (0) | 2020.11.21 |
Visual Studio에서 "Clean"명령은 무엇을합니까? (0) | 2020.11.21 |
이 자체 초기화가 유효합니까? (0) | 2020.11.21 |
프로세스의 CPU 및 메모리 사용량을 얻기위한 올바른 성능 카운터는 무엇입니까? (0) | 2020.11.21 |