4. Example code>
let name = "jbee";
//ES5
console.log("Hi, " + name + "!nHave a nice day!");
// console>
// Hi, jbee!
// Have a nice day!
//ES6
let grettingTemplate = `
Hi, ${name}!
Have a nice day!
`;
console.log(grettingTemplate);
//console>
// Hi, jbee!
// Have a nice day!
Template literal을사용하여거추장스러운 '+' 이나 'n' 을더이상사용
하지않아도된다.
7. parameter로넘겨지는 value 는하나인데, 템플릿리터럴에는표현식이두
개가 존재한다. 그렇기 때문에number에해당하는값이함수로넘겨지지못
했다.
function greet(text, value) {
console.log(text);
console.log(value);
console.log(typeof value);
}
greet `hi, ${name}! Have a nice day! ${num} is your number`
//console> [ 'hi, ', '! Have a nice day! ', ' is your number' ]
//console> jbee
//console> string
8. 이렇게 해결할수있지만, 지난chapter에서다룬 Rest parameter 를사용
할수있다.
function greet(text, value, value2) {
console.log(text);
console.log(value);
console.log(value2);
}
greet `hi, ${name}! Have a nice day! ${num} is your number`
//console> [ 'hi, ', '! Have a nice day! ', ' is your number' ]
//console> jbee
//console> 27
9. function greet(text, ...value) {
console.log(text);
console.log(value);
}
greet `hi, ${name}! Have a nice day! ${num} is your number`
//console> [ 'hi, ', '! Have a nice day! ', ' is your number' ]
//console> [ 'jbee', 27 ]
11. // Assign expression statement
function greeting(message) {
let name = `ecmascript`;
console.log(message);
}
let name = `jbee`;
greeting(`Hi, ${name}`);
//console> Hi, jbee
함수의파라미터로넘겨질때부터결정되어넘어가기 때문에 greeting 이라
는함수내부에있는local variable인 ecmascript 라는단어가 name 으로
들어가지않고 jbee 라는문자열이 name 의값으로결정되었다.
즉, 호출시점에 ${} 값이결정된다.