자바스크립트 변수명에 대괄호 ...(1)

2019. 10. 12. 17:11JavaScript

728x90

자바스크립트에서 querySelectorAll을 쓰던 중에 저 var [a, b]가 이해되지 않아서 찾아보았다.

<!DOCTYPE html>
<html>

<head>
    <title>Parcel Sandbox</title>
    <meta charset="UTF-8" />
</head>

<body>
    <div id="app">
        <button> a </button>
        <button> b </button>

    </div>

    <script src="src/index.js">
    </script>
</body>

</html>
import "./styles.css";

var [a, b] = document.querySelectorAll("button");

console.log(typeof([a,b]));
console.log([a]);
console.log([a,b]);
console.log([a,b][0]);

 

참고자료: https://www.deadcoderising.com/2017-03-28-es6-destructuring-an-elegant-way-of-extracting-data-from-arrays-and-objects-in-javascript/

 

ES6 : Desctructing - an elegant way of extracting data from arrays and objects in JavaScript

디스트럭터링 : 자바스크립트 배열, 객체에서 데이터를 추출하는 우아한 방법

 

예시 1. 배열에서 데이터 추출하기

const names = ['haley', 'alex', 'luke'];

 

const [first] = names; 는

names라는 array의 첫번째 요소를 first라는 변수에 담는다는 뜻.

 

console.log(first); // haley

console.log([fisrt]; // ["haley"] 0: "haley"

 

변수명에 대괄호[]를 치면 array에 순차적으로 접근하여 값을 가져온다는 뜻이다.

 

const animals = ['dog', 'cat', 'rabbit', 'mouse'];

 

const [one, two, three] = animals;

console.log(one); // dog

console.log(two); // cat

console.log(three); // mouse

 

여기서 animals array는 요소를 4개만 가지고 있는데, 다섯번째 요소를 추출하는 둥의 짓거리를 할 때 default 값을 주고 싶다면

 

const [one, two, three, four, five='none'] = names; 이런 식으로 변수를 선언할 때 정의하면 된다.

 

만약에 animals array에서 1번째, 3번째 요소(dog와 rabbit)만 꺼내오고 싶다면

변수를 선언할 때 콤마를 이용하여 const [one, , three] = names; 라고 쓰면 된다.

 

 

const flowers = ['rose', 'tulip', 'sunflower', 'iris'];

 

만약에 1번째 요소를 제외한 나머지 요소만 꺼내오고 싶다면

 

변수를 선언할 때 점 세개 ...를 이용하여 const [a, ...b] = flowers; 이런 식으로 쓰면 된다.

 

console.log(b);의 결과값은 object 타입인  ["tulip", "sunflower", "iris"] 가 된다.

 

콤마(,)와 점 세개(...)를 조합하여 배열 안에서 원하는 값만을 꺼내올 수 있다.

728x90
반응형