ํฐ์คํ ๋ฆฌ ๋ทฐ
์ด๋ฒ์ ์๊ฐํ ๋ถ๋ถ์ template strings ์ ๋๋ค. ์ผ๋ช "๋ฐฑํฑ" ์ด๋ผ๊ณ ํ๋ ` (๋๋ํ ์ผ์ชฝ์ ์๋ ๋ฌธ์) ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ ๊ฐ ๊ฐ์ฅ ๋จผ์ ์ ํ๋ ๋ฐฑํฑ์ ๊ธฐ๋ฅ์ ์ฌ๋ฌ ์ค์ ๊ฑธ์น ๋ฌธ์์ด์ ํํํ๋ ๊ฒ์ด์์ต๋๋ค.
Multi-line strings
1 2 3 4 5 6 7 | var str = ` ๋ํด๋ฌผ๊ณผ ๋ฐฑ๋์ฐ์ด ๋ง๋ฅด๊ณ ๋ณ๋๋ก ํ๋๋์ด ๋ณด์ฐํ์ฌ ์ฐ๋ฆฌ ๋๋ผ๋ง์ธ ๋ฌด๊ถํ ์ผ์ฒ๋ฆฌ ํ๋ ค๊ฐ์ฐ ๋ํ์ฌ๋ ๋ํ์ผ๋ก ๊ธธ์ด๋ณด์ ํ์ธ ` console.log(str) | cs |
Expression interpolation(ํํ์ ์ฝ์ ๋ฒ)
1 2 3 4 5 | var month = 12 var season = "๊ฒจ์ธ" console.log(`${month}์์ ${season} ์
๋๋ค.`); //console.log(month+"์์ "+season+"์
๋๋ค."); | cs |
=> ๋ฐฑํฑ ์์ ${๋ณ์๋ช } ์ ์จ์ ๋ฌธ์์ด๊ณผ ๋ณ์๋ฅผ ๋์์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. ๋ฌผ๋ก ์๋ ์ฃผ์๊ณผ ๊ฐ์ด '+' ๊ธฐํธ๋ฅผ ํตํด ํํ์ด ๊ฐ๋ฅํ๊ธดํ์ฃ . ๊ตณ์ด ๋ฐ์ง์๋ฉด ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ด ์กฐ๊ธ ๋ ๊น๋ํด๋ณด์ด์ฃ ?
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก ํ๊ทธ๋ ํ ํ๋ฆฟ ์ด๋ผ๋ ๋ฌธ๋ฒ์ด ๋์ต๋๋ค. ํ๊ทธ๋ ํ ํ๋ฆฟ์ ๋ฐฑํฑ ์์ ํ๊ทธ(tag)๋ฅผ ํ๋ ๋ ๋ถ์ธ ํ ํ๋ฆฟ ๋ฌธ์์ด๋ก, ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ๋์ฑ ๋ฐ์ ๋ ํํ์ ๋๋ค.
Tagged templates
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | var person = 'Hyeong'; var age = 27; function myTag(strings, personExp, ageExp) { var str0 = strings[0]; // "that " var str1 = strings[1]; // " is a " var ageStr; if (ageExp > 99){ ageStr = 'centenarian'; } else { ageStr = 'youngster'; } return str0 + personExp + str1 + ageStr; } var tagged_literal = myTag`that ${ person } is a ${ age }`; var nomal = myTag(["that "," is a "], person,age); console.log(tagged_literal); //that Hyeong is a youngster console.log(nomal) //that Hyeong is a youngster | cs |
๋ง์น myTag ํจ์๋ฅผ ๋ฐฑํฑ์ผ๋ก ํธ์ถ์ ํ๋ ๊ฒ ์ฒ๋ผ ๋ณด์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก๋ ์๋์ ๊ฐ์ด ๊ดํธ ์์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฃ์ด์ ํจ์๋ฅผ ํธ์ถํ๋๋ฐ, ๋ฐฑํฑ ์์ ๋ฌธ์์ด๊ณผ ํํ์์ ์ด์ฉํ์ฌ ๋ฐ๋ก ํํ์ด ๊ฐ๋ฅํฉ๋๋ค. ์ฌ๊ธฐ์ ์ข ํน์ดํ ์ ์ strings ๋ผ๋ ๋ฐฐ์ด์ ์ผ๋ฐ์ ์ ๋ฐฐ์ด ํ๊ธฐ๋ฒ์ธ []๋ก ๋ฃ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์ strings ๋ฅผ ์ฝ์๋ก ์ฐ์ด๋ณด๊ฒ ๋๋ฉด
[ 'that ', ' is a ', '' ] ์ด์๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ต๋๋ค. ์ฌ์ค์ ๋งจ ๋ง์ง๋ง์ ๊ณต๋ฐฑ์ด ๋ค์ด๊ฐ๋ ์ธ๋ฑ์ค๊ฐ ํ๋ ๋จ๊ฒ ๋๋๊ฑฐ์ฃ ๋ฐฐ์ด์ ์ด ๊ธธ์ด๋ ํํ์์ ๊ฐ์ + 1 ์ด๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค. ๋ฌผ๋ก ๋ฐฑํฑ ์์์์
์ด์ template strings ์ ๊ดํ ํฌ์คํ ์ ๋ง์น๊ฒ ์ต๋๋ค.
'javascript > ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
6. default + rest + spread (0) | 2019.01.03 |
---|---|
5. destructuring (0) | 2018.12.31 |
javascript๋ก ๋๋ง์๊ธฐ ๋ง๋ค๊ธฐ (0) | 2018.12.24 |
3 enhanced object literals (0) | 2018.12.13 |
2.2 class์ ๊ธฐ๋ณธ ์ ์ธ (0) | 2018.12.05 |
- Total
- Today
- Yesterday
- DeferredResult
- ๋น๋๊ธฐ ์์ฒญ
- @nestjs/config
- node.js backend
- nestjs doc
- ์๊ณ ๋ฆฌ์ฆ
- nestjs directory
- Promise bulk
- backend-framework
- nestjs configService
- node.js
- Spring Async
- nestjs module
- NestJS
- JavaScript
- typeorm ์ฐ๊ฒฐ
- ๊ธฐ์์ฒญAPI
- nestjs config
- Request_Limit_Exceeded
- nestjs project
- nestjs/cli
- android
- docker mysql
- ํ๋ก๊ทธ๋๋จธ์ค
- sequelize
- typeorm
- nestjs typeorm
- Spring
- Promise error
- foreignkey
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |