template literal

ES
비고
"hello "+myname 대신 `hello ${myname}` - 백틱(`) 사이의 공백과 줄바꿈까지 하나의 문자열로 처리
Tags
string
template

template literal 예시

여러 변수와 문자열들을 합쳐서 하나의 문자열을 만들 때를 떠올려보자.
따옴표가 많아서 경계를 알기가 헷갈리는 경우가 있었다.
 
이런 경우 template literal로 훨씬 파악하기 좋게 사용할 수 있다.
eslint도 template literal을 권장한다.

변수 값 참조, 연산은 어떻게?

이런 경우는 ${변수명} ${수식} 으로 가능하다.
notion image

주의사항

백틱 안에 있는 모든 것을 하나의 문자열로 처리한다.
공백과 줄바꿈 까지 포함한다는 점만 주의하여 사용하면 된다.
 

자동으로 toString 처리

console.log(`${[0, 1, 2]}`) // 0,1,2 console.log(`${{a:1, b:2}}`) // [object Object] console.log(`${function(){return 1;}}`) // function(){return 1;} console.log(`${(()=>3)()+5}`) // 8
api response 받아서 console.log 찍으면 [object Object]로 출력되는 경우를 많이 보게된다.

중첩 백틱 처리

notion image

문자열 예쁘게 처리하는 팁

``백틱 경계는 원래 인덴트로 해놓고,
문자열에 해당하는 부분은 들여쓰기 다 지우고 작성한 후 최종 문자열에서 .trim() 함수를 통해서 맨앞과 맨뒤에 쓸데없는 공백, 줄바꿈을 지워주도록 하면 작성했던 모습과 동일하게 깔끔하게 나옴.
function test(){ return ` hi hi hi hi hi hi hi ` } console.log(test()) hi  hi  hi  hi  hi  hi  hi
function test(){ return ` hi hi hi hi hi hi hi `.trim() } console.log(test()) hi  hi  hi  hi  hi  hi  hi