JS 튜토리얼

제이에스 홈 JS 소개 JS 어디로 JS 출력 JS 문 JS 구문 JS 코멘트 JS 변수 제이에스렛 JS 상수 JS 연산자 JS 산술 JS 할당 JS 데이터 유형 JS 함수 JS 객체 JS 이벤트 JS 문자열 JS 문자열 메서드 JS 문자열 검색 JS 문자열 템플릿 JS 번호 JS 숫자 메서드 JS 배열 JS 배열 메서드 JS 배열 정렬 JS 배열 반복 JS 배열 상수 JS 날짜 JS 날짜 형식 JS 날짜 가져오기 메서드 JS 날짜 설정 방법 JS 수학 JS 랜덤 JS 부울 JS 비교 JS 조건 JS 스위치 JS 루프 In에 대한 JS 루프 의 JS 루프 JS 루프 동안 JS 브레이크 JS 이터러블 JS 세트 JS 맵 JS 유형 JS 유형 변환 JS 비트와이즈 JS 정규 표현식 JS 오류 JS 범위 JS 호이스팅 JS 엄격 모드 JS 이 키워드 JS 화살표 함수 JS 클래스 JS JSON JS 디버깅 JS 스타일 가이드 JS 모범 사례 JS 실수 JS 성능 JS 예약어

JS 버전

JS 버전 JS 2009(ES5) JS 2015(ES6) JS 2016 JS 2017 JS 2018 JS IE / 엣지 JS 연혁

JS 객체

객체 정의 개체 속성 개체 메서드 개체 표시 개체 접근자 객체 생성자 개체 프로토타입 객체 반복 가능 객체 세트 객체 맵 개체 참조

JS 함수

기능 정의 기능 매개변수 함수 호출 함수 호출 기능 적용 함수 클로저

JS 클래스

수업 소개 클래스 상속 클래스 정적

JS 비동기

JS 콜백 JS 비동기 JS 약속 JS 비동기/대기

JS HTML DOM

DOM 소개 DOM 메서드 DOM 문서 DOM 요소 DOM HTML DOM 양식 DOM CSS DOM 애니메이션 DOM 이벤트 DOM 이벤트 리스너 DOM 탐색 DOM 노드 DOM 컬렉션 DOM 노드 목록

JS 브라우저 BOM

JS 창 JS 화면 JS 위치 JS 연혁 JS 네비게이터 JS 팝업 경고 JS 타이밍 JS 쿠키

JS 웹 API

웹 API 소개 웹 양식 API 웹 기록 API 웹 스토리지 API 웹 작업자 API 웹 가져오기 API 웹 지리적 위치 API

JS 아약스

AJAX 소개 AJAX XMLHttp AJAX 요청 AJAX 응답 AJAX XML 파일 AJAX PHP AJAX ASP AJAX 데이터베이스 AJAX 애플리케이션 AJAX 예제

JS JSON

JSON 소개 JSON 구문 JSON 대 XML JSON 데이터 유형 JSON 구문 분석 JSON 문자열화 JSON 객체 JSON 배열 JSON 서버 JSON PHP JSON HTML JSON JSONP

JS 대 jQuery

jQuery 선택기 제이쿼리 HTML 제이쿼리 CSS 제이쿼리 DOM

JS 그래픽

JS 그래픽 JS 캔버스 JS 플로틀리 JS 차트.js JS 구글 차트 JS D3.js

JS 예제

JS 예제 JS HTML DOM JS HTML 입력 JS HTML 객체 JS HTML 이벤트 JS 브라우저 JS 편집기 JS 연습 JS 퀴즈 JS 인증서

JS 참조

자바스크립트 객체 HTML DOM 객체


자바스크립트 배열

배열은 둘 이상의 값을 가질 수 있는 특수 변수입니다.

const cars = ["Saab", "Volvo", "BMW"];

배열을 사용하는 이유

항목 목록(예: 자동차 이름 목록)이 있는 경우 자동차를 단일 변수에 저장하면 다음과 같을 수 있습니다.

let car1 = "Saab";
let car2 = "Volvo";
let car3 = "BMW";

그러나 자동차를 탐색하고 특정 자동차를 찾으려면 어떻게 해야 합니까? 그리고 3대가 아니라 300대가 있다면 어떨까요?

솔루션은 어레이입니다!

배열은 하나의 이름으로 많은 값을 가질 수 있으며 인덱스 번호를 참조하여 값에 액세스할 수 있습니다.


배열 생성

배열 리터럴을 사용하는 것이 JavaScript 배열을 만드는 가장 쉬운 방법입니다.

통사론:

const array_name = [item1, item2, ...];      

const 키워드 로 배열을 선언하는 것이 일반적 입니다.

JS Array Const 장에서 배열을 사용한 const 에 대해 자세히 알아보세요 .

예시

const cars = ["Saab", "Volvo", "BMW"];

공백과 줄 바꿈은 중요하지 않습니다. 선언은 여러 줄에 걸쳐 있을 수 있습니다.

예시

const cars = [
  "Saab",
  "Volvo",
  "BMW"
];

배열을 만든 다음 요소를 제공할 수도 있습니다.

예시

const cars = [];
cars[0]= "Saab";
cars[1]= "Volvo";
cars[2]= "BMW";

자바스크립트 키워드 new 사용하기

다음 예제에서는 Array를 만들고 값을 할당합니다.

예시

const cars = new Array("Saab", "Volvo", "BMW");

위의 두 가지 예는 정확히 동일합니다.

사용할 필요가 없습니다 new Array().

단순성, 가독성 및 실행 속도를 위해 배열 리터럴 방법을 사용하십시오.



배열 요소 액세스

인덱스 번호 를 참조하여 배열 요소에 액세스합니다 .

const cars = ["Saab", "Volvo", "BMW"];
let car = cars[0];

참고: 배열 인덱스는 0으로 시작합니다.

[0]은 첫 번째 요소입니다. [1]은 두 번째 요소입니다.


배열 요소 변경

이 문은 다음에서 첫 번째 요소의 값을 변경합니다 cars.

cars[0] = "Opel";

예시

const cars = ["Saab", "Volvo", "BMW"];
cars[0] = "Opel";

전체 어레이에 액세스

JavaScript를 사용하면 배열 이름을 참조하여 전체 배열에 액세스할 수 있습니다.

예시

const cars = ["Saab", "Volvo", "BMW"];
document.getElementById("demo").innerHTML = cars;

배열은 객체입니다

배열은 특별한 유형의 객체입니다. JavaScript 의 typeof연산자는 배열에 대해 "객체"를 반환합니다.

그러나 JavaScript 배열은 배열로 가장 잘 설명됩니다.

배열 은 "요소"에 액세스하기 위해 숫자 를 사용합니다. 이 예에서 person[0] John을 반환합니다.

정렬:

const person = ["John", "Doe", 46];

개체는 이름 을 사용하여 "구성원"에 액세스합니다. 이 예에서 person.firstName John을 반환합니다.

물체:

const person = {firstName:"John", lastName:"Doe", age:46};

배열 요소는 객체일 수 있음

JavaScript 변수는 객체가 될 수 있습니다. 배열은 특별한 종류의 객체입니다.

이 때문에 동일한 배열에 다른 유형의 변수를 가질 수 있습니다.

배열에 객체를 가질 수 있습니다. 배열에 함수를 가질 수 있습니다. 배열에 배열을 가질 수 있습니다.

myArray[0] = Date.now;
myArray[1] = myFunction;
myArray[2] = myCars;

배열 속성 및 메서드

JavaScript 배열의 진정한 강점은 내장 배열 속성과 메서드입니다.

cars.length   // Returns the number of elements
cars.sort()   // Sorts the array

배열 메서드는 다음 장에서 다룹니다.


길이 속성

배열 의 length속성은 배열의 길이(배열 요소의 수)를 반환합니다.

예시

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let length = fruits.length;

length속성은 항상 가장 높은 배열 인덱스보다 하나 더 많습니다 .


첫 번째 배열 요소 액세스

예시

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[0];

마지막 배열 요소 액세스

예시

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[fruits.length - 1];

루프 배열 요소

배열을 반복하는 한 가지 방법은 루프를 사용하는 것입니다 for.

예시

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fLen = fruits.length;

let text = "<ul>";
for (let i = 0; i < fLen; i++) {
  text += "<li>" + fruits[i] + "</li>";
}
text += "</ul>";

Array.forEach()다음 기능 을 사용할 수도 있습니다 .

예시

const fruits = ["Banana", "Orange", "Apple", "Mango"];

let text = "<ul>";
fruits.forEach(myFunction);
text += "</ul>";

function myFunction(value) {
  text += "<li>" + value + "</li>";
}

배열 요소 추가하기

배열에 새 요소를 추가하는 가장 쉬운 방법은 다음 push()방법을 사용하는 것입니다.

예시

const fruits = ["Banana", "Orange", "Apple"];
fruits.push("Lemon");  // Adds a new element (Lemon) to fruits

length속성 을 사용하여 새 요소를 배열에 추가할 수도 있습니다 .

예시

const fruits = ["Banana", "Orange", "Apple"];
fruits[fruits.length] = "Lemon";  // Adds "Lemon" to fruits

경고 !

인덱스가 높은 요소를 추가하면 배열에 정의되지 않은 "구멍"이 생길 수 있습니다.

예시

const fruits = ["Banana", "Orange", "Apple"];
fruits[6] = "Lemon";  // Creates undefined "holes" in fruits

연관 배열

많은 프로그래밍 언어는 명명된 인덱스가 있는 배열을 지원합니다.

명명된 인덱스가 있는 배열을 연관 배열(또는 해시)이라고 합니다.

JavaScript는 명명된 인덱스가 있는 배열을 지원 하지 않습니다 .

JavaScript에서 배열 은 항상 번호가 매겨진 인덱스 를 사용합니다 .  

예시

const person = [];
person[0] = "John";
person[1] = "Doe";
person[2] = 46;
person.length;    // Will return 3
person[0];        // Will return "John"

경고 !!
명명된 인덱스를 사용하는 경우 JavaScript는 배열을 객체로 재정의합니다.

그 후 일부 배열 메서드 및 속성은 잘못된 결과 를 생성합니다 .

 예시:

const person = [];
person["firstName"] = "John";
person["lastName"] = "Doe";
person["age"] = 46;
person.length;     // Will return 0
person[0];         // Will return undefined

배열과 객체의 차이점

JavaScript에서 배열 은 번호가 매겨진 인덱스 를 사용 합니다 .  

JavaScript에서 객체명명된 인덱스 를 사용합니다 .

배열은 번호가 매겨진 인덱스가 있는 특수한 종류의 객체입니다.


배열을 사용하는 경우. 개체를 사용하는 경우.

  • JavaScript는 연관 배열을 지원하지 않습니다.
  • 요소 이름을 문자열(텍스트) 로 지정하려면 객체 를 사용해야 합니다 .
  • 요소 이름을 숫자 로 지정하려면 배열 을 사용해야 합니다 .

자바스크립트 새 Array()

JavaScript에는 배열 생성자가 내장되어 new Array()있습니다.

그러나 대신 안전하게 사용할 수 있습니다 [].

이 두 개의 다른 문은 모두 point라는 이름의 빈 배열을 새로 만듭니다.

const points = new Array();
const points = [];

이 두 개의 다른 명령문은 모두 6개의 숫자를 포함하는 새 배열을 만듭니다.

const points = new Array(40, 100, 1, 5, 25, 10);
const points = [40, 100, 1, 5, 25, 10];

키워드는 다음 new과 같은 예기치 않은 결과를 생성할 수 있습니다.

// Create an array with three elements:
const points = new Array(40, 100, 1);
// Create an array with two elements:
const points = new Array(40, 100);
// Create an array with one element ???
const points = new Array(40);  

일반적인 오류

const points = [40];

다음과 같지 않습니다.

const points = new Array(40);
// Create an array with one element:
const points = [40];
// Create an array with 40 undefined elements:
const points = new Array(40);  

배열을 인식하는 방법

일반적인 질문은 다음과 같습니다. 변수가 배열인지 어떻게 알 수 있습니까?

The problem is that the JavaScript operator typeof returns "object":

const fruits = ["Banana", "Orange", "Apple"];
let type = typeof fruits;

The typeof operator returns object because a JavaScript array is an object.

Solution 1:

To solve this problem ECMAScript 5 (JavaScript 2009) defined a new method Array.isArray():

Array.isArray(fruits);

Solution 2:

The instanceof operator returns true if an object is created by a given constructor:

const fruits = ["Banana", "Orange", "Apple"];

fruits instanceof Array;

Complete Array Reference

For a complete Array reference, go to our:

Complete JavaScript Array Reference.

The reference contains descriptions and examples of all Array properties and methods.

Test Yourself With Exercises

Exercise:

Get the value "Volvo" from the cars array.

const cars = ["Saab", "Volvo", "BMW"];
let x = ;