Programing

자바 스크립트의 배열 리터럴 표기법은 무엇이며 언제 사용해야합니까?

lottogame 2020. 11. 21. 08:19
반응형

자바 스크립트의 배열 리터럴 표기법은 무엇이며 언제 사용해야합니까?


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

참조 : 자바 스크립트 배열을 선언 할 때“Array ()”와“[]”의 차이점은 무엇입니까?


참조 : 무엇이 잘못되었는지 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

색인을 사용하여 추가하는 것이 []의 경우 약간 더 빠릅니다.

참고 URL : https://stackoverflow.com/questions/1094723/what-is-array-literal-notation-in-javascript-and-when-should-you-use-it

반응형