문자 해체분석기능
실행할 함수이름을 쓰시고 소괄호 대신 백틱
문자를 붙이기
➡️ 함수 뒤에 백틱으로 문자
를 붙여 실행하면 그 문자열을 문자와 변수로 해체분석할 수 있다
백틱
내의 순수 문자만 골라서 Array로 만들어놓은 파라미터백틱
내의 ${} 변수를 담는 파라미터로 변수 개수대로 작성해야함 혹은 ...vars 가능 var pants = 20;
var socks = 100;
function A(letter, ...vars) {
console.log(letter[1] + vars[0] + letter[0] + vars[1]);
}
A`바지${pants} 양말${socks}`;
var pants = 0;
var socks = 100;
`바지${pants} 양말${socks}`;
function A(letter, ...vars) {
if (vars[0] == 0) {
console.log("바지 다 팔렸어요 양말" + vars[1]);
}
}
A`바지${pants} 양말${socks}`;
괄호를 제거 해주는 연산자
spread 연산자는 함수소괄호, 오브젝트 중괄호내, 어레이 대괄호내에서 사용해야 한다
var array = ['hello', 'world'];
console.log(array); // ['hello', 'world']
console.log(...array); // hello world
문자에 붙이면 문자에 붙은 괄호를 제거해준다
var letter = 'hello';
console.log(letter); // hello
console.log(...letter); // h e l l o
var a = [1,2,3];
var b = [4,5];
var c = [...a, ...b];
var o1 = { a : 1, b : 2 };
var o2 = { c : 3, ...o1 };
자바스크립트에서 복사를
var a = [1,2,3];
var b = a
이렇게 하면 안된다
이유 : 등호복사는 값 공유를 하게 됨 => 참조형
var a = [1,2,3];
var b = [...a];
function Add(a, b, c) {
console.log(a + b + c);
}
let array = [10, 20, 30];
Add(...array);
과거에는 array 내의 모든 데이터를 파라미터로 입력하기 위해서 apply
메소드를 사용했었다
function Add(a, b, c) {
console.log(a + b + c);
}
let array = [10, 20, 30];
Add.apply(undefined,array);
Add( ) 함수를 실행하는데 undefined에 적용해서 실행하고 파라미터로 array를 입력한다는 뜻
비워두면 문제 생기니 undefined를 입력하지만 사실은 함수실행을 위해서 아무값이나 입력해도 괜찮다
ES5 문법인 자바스크립트 내장 함수
apply ()
함수 옮겨와서 실행해줘~
실행할함수 . apply (적용할곳);var person = { greet: function () { console.log(this.name + "안녕"); // this : person 객체 }, }; var person2 = { name: "손흥민", }; person.greet.apply(person2);
person.greet 을 person2에서 실행해달라는 뜻
call ()
apply랑 같은데 파라미터 입력에서 차이가 있다
- apply는 파라미터를 [array]로 한꺼번에 입력 가능
- call은 1,2,3 이렇게 일반 함수처럼 입력 가능
➡️ ES6에는 편리한 spread 문법이 등장