Syntax: `문자열`
`문자열 ${표현식} 문자열`
tag `문자열 ${표현식} 문자열`
Template Literal
backtick 안에 표현식 작성
log(`ABC`);
const one = 1, two = 2;
const result = `1 + 2는 ${one + two}이 된다`;
log(result);
// ABC
// 1 + 2는 3이 된다
const one = 1, two = 2;
const show = (text, value) => {
log(`${text[0]}${value}`);
log(text[1]);
};
show `1 + 2 = ${one + two}`;
// 1 + 2 = 3
// ""
호출되는 함수를 태그 함수(tag function)라고 부름
show() 함수를 호출하면서
const one = 1, two = 2;
const show = (text, plus, minus) => {
log(`${text[0]}${plus}`);
log(`${text[1]}${minus}`);
log(`${text[2]}${text[3]}`);
};
show `1+2=${one+two}이고 1-2=${one-two}이다`
// 1+2=3
// 이고 1-2=-1
// 이다undefined
문자열을 분리하면
표현식을 분리하면
show 태그 함수를 호출
const one = 1, two = 2;
const show = (text, ...rest) => {
log(`${text[0]}${rest[0]}`);
log(`${text[1]}${rest[1]}${text[2]}`);
};
show `1+2=${one+two}이고 1-2=${one-two}이다`;
// 1+2=3
// 이고 1-2=-1이다
문자열을 분리하면
표현식을 분리하면
show 태그 함수를 호출
String 오브젝트에 속하지만
String.raw에
1) 이어서 Template 작성
const one = 1, two = 2;
const result = String.raw `1+2=${one + two}`;
log(result);
// 1+2=3
2) 줄 바꿈을 문자로 처리
log(`one\ntwo`);
log(String.raw `one\ntwo`);
// one
// two
// one\ntwo
3) 유니코드의 코드 포인트 처리
log(`\u{31}\u{32}`);
log(String.raw `\u{31}\u{32}`);
// 12
// \u{31}\u{32}
1) 문자열
const one = 1, two = 2;
log(String.raw({raw: "ABCD"}, one, two, 3));
// A1B2C3D
2) 배열
const rawValue = {raw: ["A", "B", "C"]};
log(String.raw(rawValue, 1, 2, 3));
// A1B2C