문제

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

참조: JavaScript 배열을 선언하는 동안 "array ()"과 []의 차이점은 무엇입니까?

다른 팁

또한보십시오: 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를 추가하는 것이 []에 대해 약간 빠릅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top