[SEB FE] section 1 unit 10 (2) ์ค์ฝํ
์ค์ฝํ : "๋ณ์ ์ ๊ทผ ๊ท์น์ ๋ฐ๋ฅธ ์ ํจ ๋ฒ์"
let username = 'kimcoding';
if (username) {
let message = `Hello, ${username}!`;
console.log(message); // ์ฌ๊ธฐ์ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ ๋๋, 3๋ฒ์งธ ์ค์ username์ ๋ฐ๊นฅ์ค์ฝํ์์ ๊ฐ์ ธ์ด
}
console.log(message); // ์ฌ๊ธฐ์ ์ถ๋ ฅํ ๋๋, message๋ผ๋ ๋ณ์์์ฒด๊ฐ ์ค์ฝํ ์์์ ์ ์ธ, ๋ฐ๊นฅ์์ x
์ถ๋ ฅ -> "Hello, kimcoding!" / ReferenceError
let greeting = 'Hello';
function greetSomeone() {
let firstName = 'Josh';
return greeting + ' ' + firstName;
}
console.log(greetSomeone()); // --> Hello Josh
console.log(firstName); // --> ReferenceError
- greeting ๋ณ์๋ ๋ฐ๊นฅ ์ค์ฝํ์ ์ ์๋์ด ์์ผ๋ฏ๋ก, ํจ์ ์์ชฝ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ greeting ๋ณ์์ firstName ๋ณ์์ ์กฐํฉ์ ์ํด 'Hello Josh' ๋ฌธ์์ด์ด ์ถ๋ ฅ๋ฉ๋๋ค. - ๋ฐ๋ฉด์, firstName ๋ณ์๋ ์์ชฝ ์ค์ฝํ์ ์ ์๋์ด ์์ผ๋ฏ๋ก ๋ฐ๊นฅ์ชฝ์์๋ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๋ฐ๋ผ์ ReferenceError๋ฅผ ๋ ๋๋ค.
๋ฐ๊นฅ์ชฝ ์ค์ฝํ์์ ์ ์ธํ ๋ณ์๋ ์์ชฝ ์ค์ฝํ์์ ์ฌ์ฉ ๊ฐ๋ฅ
์์ชฝ์์ ์ ์ธํ ๋ณ์๋ ๋ฐ๊นฅ์ชฝ ์ค์ฝํ์์๋ ์ฌ์ฉ ๋ถ๊ฐ๋ฅ
let name = '๊น์ฝ๋ฉ';
function showName() {
name = '๋ฐํด์ปค'; // let ์ ์ธ์ด ์๋ค. ์ ์ญ์ ์ฌ์ฉ๋ name๋ณ์๋ฅผ ์ฌ์ฉํ๊ฒ ๋ค๋ ๋ง
console.log(name); // ๋ ๋ฒ์งธ ์ถ๋ ฅ : ๋ฐํด์ปค
}
console.log(name); // ์ฒซ ๋ฒ์งธ ์ถ๋ ฅ : ๊น์ฝ๋ฉ
showName();
console.log(name); // ์ธ ๋ฒ์งธ ์ถ๋ ฅ : showName ํ ๋ฐํด์ปค
let, var, const
var ํค์๋๋ ๋ธ๋ก์ค์ฝํ๋ฅผ ๋ฌด์ํ๊ณ ํจ์ ์ค์ฝํ๋ง ๋ฐ๋ฆ (ํ์ดํ ์ค์ฝํ๋ ๋ฐ๋ฅธ๋ค)
์ ์ญ ๋ณ์๋ฅผ var๋ก ์ ์ธํ๋ ๊ฒ์ ๋ธ๋ผ์ฐ์ ์ ๋ด์ฅ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ง ๋ชปํ๊ฒ ๋ง๋ค ์๋ ์์ต๋๋ค.
for (var i = 0; i < 5; i++) {
console.log(i); // ๋ค์ฏ ๋ฒ ๋ฐ๋ณต
}
console.log('final i:', i); // 5
/
for (let i = 0; i < 5; i++) {
console.log(i); // ๋ค์ฏ ๋ฒ ๋ฐ๋ณต
}
console.log('final i:', i); // ReferenceError
let์ ์ฌ์ ์ธ์ ๋ฐฉ์งํ๋ค
์์(constant)๋ฅผ ์ ์ํ ๋์๋ const๋ฅผ ์ด์ฉ
์ ์ธ ์์ด ๋ณ์๋ฅผ ํ ๋นํ์ง ๋ง์ธ์. ์ ์ธ ์์ด ๋ณ์๋ฅผ ํ ๋นํ๋ฉด, ํด๋น ๋ณ์๋ var๋ก ์ ์ธํ ์ ์ญ ๋ณ์์ฒ๋ผ ์ทจ๊ธ๋ฉ๋๋ค.