Javascript/ES6
오퍼레이션
dongling
2024. 6. 12. 21:51
728x90
반응형
✅ 핵심요약
- Operation
- 프로퍼티 이름조합
- 문자열과 변수 조합하여 프로퍼티 이름으로 사용 가능
- Default Value
- 값이 할당되지 않았을 때 사전에 정의한 값이 할당됨
- Default 파라미터
- 호출 받은 함수의 파라미터에 디폴트 값을 지정 가능
- for-of
- for-of 문은 이터러블 오브젝트를 반복하여 처리
- 구문 : for ( variable of iterableObject ) { code.. }
- 거듭 제곱 연산자 (**)
- **은 Math.pow() 메소드와 같다
1. 프로터티 이름 조합
- 문자열과 변수를 조합하여 오브젝트의 프로퍼티 이름으로 사용할 수 있다.
let sports = "tennis";
let item = {
["one" + "two"]: 12,
[sports]: 1,
[sports + "Game"]: "윔블던",
[sports + "Method"](){
return this[sports];
}
};
console.log(item.onetwo); // 12
console.log(item.tennis); // 1
console.log(item.tennisGame); // 윔블던
console.log(item.tenisMethod()); // 1
let one = "sports";
let {[one]: value} = {sports: "농구"};
console.log(value); // 농구
🔸Default Value
- 변수, 파라미터, 프로퍼티에 값이 할당되지 않을 때 사전에 정의한 값이 할당된다.
- 변수, 파라미터, 프로퍼티가 항상 값을 갖게 된다.
- 일반적으로 사용도니느 디폴트 값과는 차이가 있다.
- let 변수를 선언하면 디폴트 값으로 undefined가 설정
- 반면 여기의 디폴트 값(default value)은 let 변수를 선언하면서 값이 설정되지 않았을 때 할당될 값을 작성해 두는 형태
let [one, two.five = 5] = [1, 2];
console.log(five); // 5
[one, two, five = 5] = [1, 2, 77];
console.log(five); // 77
let [six, seven = 7] = {six: 6};
console.log(six, seven); // 6 7
let [one, two = one +1, five = two + 3] = [1];
console.log(one, two, five); // 1 2 5
//디폴트 값 적용 순서는 왼쪽에서 오른쪽.
🔸Default 파라미터
- 호출 받은 함수의 파라미터에 디폴트 값을 작성할 수 있다.
- 호출하는 함수에서 파라미터 값을 넘겨주지 않거나 undefined를 넘겨주면 디폴트 값이 적용됨
let plus = (one, two = 2) => one + two;
console.log(plus(1)); // 3
console.log(plus(1, undefined)); // 3
console.log(plus(1, 70)); // 71
let getTotal = ([one, two] = [10, 20]) => one + two;
console.log(getTotal()); // 30
let getValue = ({two: value} = {two: 20}) => value;
console.log(getValue()); // 20
🔸for-of
- 이터러블 오브젝트를 반복하여 처리함
- 반복하는 것은 for-in문과 차이가 없지만 대상과 방법에 차이가 있음
- 구문 : for ( variable of iterableObject ) { code.. }
- 오브젝트의 프로퍼티를 구분할 수 있는 값이 variable변수에 설정됨
- iterableObject에 이터러블 오브젝트를 지정
- Array 반복
- for (var value of [10, 20, 30]) { console.log(value); } // 10 // 20 // 30
- String 사용
- for (var value of "ABC") { console.log(value); } // A // B // C
- NodeList 반복
let nodes = document.querySelectorAll("li"); for (var value of nodes) { console.log(node.textContent); } // 첫번째 // 두번째 // 세번째
- <ul> <li>첫번째</li> <li>두번째</li> <li>세번째</li> </ul>
- 디스트럭처링
- let values = [ {item: "선물1", amount: {apple: 10, candy: 20}}, {item: "선물2", amount: {apple: 30, candy: 40}}, ]; for (var {item: one, amount: {apple: two, candy: five}} of values) { console.log(one, two, five); } // 선물1 10 20 // 선물2 30 40
🔸for-of와 for-in 차이
- for-in 문의 대상은 Objet 오브젝트이며 열거 가능한 프로퍼티가 대상이다. 즉, 프로퍼티의 enumerable 속성 값이 false이면 반복에서 제외된다.
- for-of 문의 대상은 이터러블 오브젝트이며 prototype에 연결된 프로퍼티는 대상이 아니다.
let values = [10, 20, 30]; Array.propotype.music = function() { return "음악" }; Object.protoype.sports = function() { return "스포츠" }; for(var key in values) { console.log(key, values[key])l }; console.log("<<<for-of>>>"); for(var value of values) { console.log(value); }; [실행결과] 0 10 1 20 2 30 music function(){return "음악"} sports function(){return "스포츠"} <<<for-of>>> 10 20 30
728x90
반응형