λλ€μ μλ°μ€ν¬λ¦½νΈ μ΄ν리μΌμ΄μ (Application)μ μ¬μ©μ λλ μλ²λ‘λΆν° λ°μ μ 보λ₯Ό μ²λ¦¬νλ λ°©μμΌλ‘ λμνλ€.
μμ)
μ¨λΌμΈ μΌνλͺ° - ν맀μ€μΈ μνμ΄λ μ₯λ°κ΅¬λ λ±μ λ°μ΄ν°λ₯Ό μ΄μ©ν΄μ κ²°μ μ°½μΌλ‘ λμ΄κ°
μ±ν μ΄ν - μ¬μ©μ, λ©μμ§ λ±μ λ°μ΄ν°λ₯Ό μ΄μ©ν΄μ μλ‘ λνν μ μλ μ±ν μ₯μ λμν¨
μ΄λ¬ν λ°μ΄ν°λ₯Ό μ μ₯νλ μ©λλ‘ μ¬μ©λλ κ²μ΄ 'λ³μ(Variables)'μ΄λ€.
λ€μνκ³ μμλ‘ λ°λλ λ°μ΄ν°λ€μ μ μ₯λ μμ΄ λ§ λ³΄λ΄κ² λλ©΄ μ§μ λΆν΄μ§κ³ κ΄λ¦¬κ° μ΄λ €μμ§ κ²μ΄λ€.
λ³μ(Variables)
λ³μ(variables) : λ°μ΄ν°(data)λ₯Ό μ μ₯ν λ μ°λ μ΄λ¦μ΄ λΆμ μ μ₯μ
1. let μ μ΄μ©ν λ³μμ μΈ
let message; // letμ λ³μλ₯Ό μμ±ν λ μ¬μ©, νμ¬ messageλΌλ μ΄λ¦μ κ°μ§ λ³μλ₯Ό μ μΈν¨
message = 'hey!'; // messageλΌλ λ³μμμ string typeμΈ hey!λ₯Ό μ μ₯ν¨
console.log(message); // μ½μ μ°½μ λ³μμ μ μ₯λ κ°μ 보μ¬μ€
β λ³μλ₯Ό μ μΈκ³Ό λμμ ν λΉ κ°λ₯
// λ³μλ₯Ό μ μΈκ³Ό λμμ ν λΉ κ°λ₯
let hello = 'heyheyhey';
β ν μ€μ μ¬λ¬ κ°μ§ λ³μλ₯Ό μ μΈ κ°λ₯
// νμ€μ μ¬λ¬κ°μ§ λ³μλ₯Ό μ μΈ κ°λ₯
let user = 'Taylor', age = 30, message = 'look what you made me doπ';
μ¬λ¬κ°μ§ λ³μλ₯Ό μ μΈν κ²½μ° μλμ κ°μ΄ κ°λ μ± μ’κ² μμ± κ°λ₯
let user = 'bob',
age = 22,
message = 'get up!';
β‘οΈ κΈ°μ μ μΈ μ°¨μ΄κ° μμ§ μμΌλ©° κ°μΈμ μ·¨ν₯ μ°¨μ΄λ‘ νΈν λ°λ‘ μμ±
β letμ μ΄μ©νμ¬ λ³μλ₯Ό μ μΈν κ²½μ° λ³μ μμ μ μ₯λ κ°μ λ³κ²½ν μ μμ
let user = 'baby';
console.log(user); // baby
user = 'bob'
console.log(user); // bob
2-A. constλ₯Ό μ΄μ©ν λ³μ μ μΈ
β λ³νμ§ μλ λ³μλ₯Ό μ¬μ©νκ³ μΆμ λ let λμ constλ₯Ό μ¬μ©
β constλ‘ μ μΈν λ³μλ₯Ό μμ(Constatant)λΌκ³ ν¨, μ°λ¦° μ΄κ²μ μμλΌ λΆλ₯΄κΈ°λ‘ νμ΄μ.
β constλ μ¬ν λΉμ΄ λΆκ°λ₯, λ³κ²½ μ Error λ°μ
const myBirthday = '01.01.2000';
myBirthday = '01.02.2000'; // Error! can't reassign the constant!
π μΌμ£ΌμΌ μΌμ(7μΌ) ν루μ μκ°(24μκ°)κ³Ό κ°μ΄ μ λ λ³νμ§ μμ κ²μ΄λΌ νμ λλ κ°μ constλ₯Ό μ΄μ©ν΄ μ μ₯
β‘οΈ νμ μμλ λ³κ²½μ νλ©΄ μ λλ κ°μ΄λΌλ κ²μ νκ°λ°μλ€μκ² μ릴 μ μμ
2-B. λλ¬Έμ μμ(Uppercase Constants)
β κΈ°μ΅νκΈ° νλ€κ±°λ μ€νκ° λκΈ° μ¬μ΄ κ°μ λ³μμ ν λΉν΄ λ³μΉμΌλ‘ μ¬μ©
β λ³΄ν΅ λλ¬Έμμ λ°μ€λ‘ ꡬμ±λμ΄μμ
β μ μ§λ³΄μμ μ©μ΄
const COLOR_RED = '#f00';
const COLOR_GREED = '#0f0';
// μμμ κ³ λ₯΄κ³ μΆμ λ λ³μΉμ μ¬μ©, λ³μλͺ
μ΄ μλͺ»λλ€λ©΄ errorλ₯Ό λΏμ΄λ΄ λλ²κΉ
μ¬μ΄μ§
let color = COLOR_GREEN;
console.log(color); // #0f0
3. varλ₯Ό μ΄μ©ν λ³μμ μΈ
β letμ΄λ const λμ varλ₯Ό μ΄μ©ν΄μ λ³μλ₯Ό μ μΈνλ κ²½μ°λ₯Ό μ’ μ’ λ³Ό μ μμ
β varλ letκ³Ό κ±°μ λμΌνκ² λμνμ§λ§ μ€λλ λ°©μμΌλ‘ μ¬μ©μ μ§μ β
λλΆλΆμ κ²½μ°μλ varλ‘ μ μΈλ λ³μλ letμΌλ‘ λ°κΏλ λ°λλ‘ letμ varλ‘ λ°κΏλ 무리 μμ΄ λμ
var message = 'hello!';
console.log(message); // hello!
νμ§λ§ varλ μ΄κΈ° μλ°μ€ν¬λ¦½νΈ ꡬν λ°©μμΌλ‘ letκ³Ό const μλ λ€λ₯Έ λ°©μμΌλ‘ μλ!
λͺ¨λμλ°μ€ν¬λ¦½νΈμ μλ ννλ²μ λΉλ¦¬μλ©΄...
μ€λλ μ€ν¬λ¦½νΈμμ λΉμ μ κΈ°λ€λ¦¬λ monster.....
κ·μ¬μ΄ κΌ¬λΆκΈ°μ κ°λ€κ³ μκ°νλ©΄ λ§μμ΄ μ‘°κΈ λμΌ μλ?π«
λ»₯μ΄κ³ μ.
μλ μ€ν¬λ¦½νΈμμ varλ₯Ό letμΌλ‘ λ°κΏμΌ ν μΌμ΄ μλ€λ©΄ varλ₯Ό μ°λ©΄ μ λλ μ΄μ λ₯Ό νμ€ν μκ³ κ°μΌ ν¨.
μκ°μ§λ λͺ»ν μλ¬μ λ±μ₯μΌλ‘ λ·λͺ© μ‘κ³ μμΉ¨λλΌλ§ μ°κ³ μΆμ§ μλ€λ©΄..
κ°λ¨νκ² varλ₯Ό μ¬μ©ν΄μ μ λλ μ΄μ λ₯Ό μμ보μλ©΄ λ€μκ³Ό κ°λ€.
1) varλ λΈλ‘ μ€μ½νκ° μλ€!
β οΈ varλ‘ μ μΈν λ³μμ μ€μ½νλ ν¨μ μ€μ½ν λλ μ μ μ€μ½ν β‘οΈ λΈλ‘ λ°μμ μ κ·Ό κ°λ₯
for (var i = 0; i < 5; i ++ ) {
//...blah blah
}
console.log(i); // 5
forλ¬ΈλΏλ§ μλλΌ function, while, if λ±λ± μ€μ½ν μμμ μ°μΈλ€λ©΄ μ λΆ λ°μμ μ κ·Όμ΄ κ°λ₯νλ€ π
2) varλ λ³μμ μ€λ³΅ μ μΈμ νμ©νλ€!
β οΈ ν μ€μ½νμμ κ°μ λ³μλ₯Ό letμΌλ‘ λ λ² μ μΈνλ©΄ μλ¬λ°μ
let user = 'jason'
let user = 'ajax'
console.log(user); // SyntaxError: Identifier 'user' has already been declared
β οΈβ οΈβ οΈβ οΈ νμ§λ§ varλ₯Ό μ¬μ©νλ€λ©΄..? β οΈβ οΈβ οΈβ οΈ
μ΄λ° μ μ λκ° μ§ κ°λ₯...... π
var user = 'python';
var user = 'c++'; // μ΄ varλ μ무κ²λ νμ§ μμ, μ΄λ―Έ μ μΈλ κ²
// μλ¬λ λ°μνμ§ μμ
console.log(user); // c++
3) μ μΈνκΈ° μ μ¬μ© κ°λ₯ν var!
β οΈ varλ μ μΈμ ν¨μκ° μμλ λ μ²λ¦¬λ¨
β οΈ μ μμμ μ μΈν λ³μλΌλ©΄? μ€ν¬λ¦½νΈκ° μμλ λ μ²λ¦¬λ¨
β οΈ μ μΈλ κ²μ΄ μλ‘ λμ΄μ¬λ €μ§λ κ²μ νΈμ΄μ€ν (hoisting)μ΄λΌ λΆλ¦
function sayHey() {
message = 'hey!';
if(false) {
var message; // λΈλ‘ μ€μ½νκ° λ¬΄μλκΈ° λλ¬Έμ μ¬κΈ° μ μΈν΄λ μκ΄μμ
}
console.log(message);
}
sayHey(); // hey!
4. λ³μ λͺ λͺ κ·μΉ
β λ³μλͺ μλ μ€μ§ λ¬Έμμ μ«μ, κΈ°νΈ$ μ _ λ§ λ€μ΄κ° μ μμ
β λμ 첫 κΈμλ μ«μκ° λ μ μμ
β camelCase* λ₯Ό μ΄μ©ν΄μ λ³μλͺ λͺ
*camelCase : 첫 λ¨μ΄λ₯Ό μ μΈν κ° λ¨μ΄μ 첫 κΈμλ₯Ό λλ¬Έμλ‘ μμ±
// κ°λ₯ν λ³μλͺ
let userName;
let test123;
let $;
let _;
// λΆκ°λ₯ν λ³μλͺ
let 1abc; // μ«μλ‘ μμ λΆκ°λ₯
let my-name; // νμ΄νμ λ³μλͺ
μ μ¬ μ μμ
β λμλ¬Έμ κ΅¬λ³ : appleκ³Ό AppLEμ μλ‘ λ€λ₯Έ λ³μ
β λ³μλͺ μ μμ΄λ₯Ό μ¬μ©ν΄μ λ§λλ κ² κ΅μ μ μΈ κ΄μ΅
β μμ½μ΄ λͺ©λ‘μ μλ λ¨μ΄λ λ³μλͺ μΌλ‘ μ¬μ© λΆκ°λ₯
WHY? μλ°μ€ν¬λ¦½νΈ λ΄λΆμμ μ΄λ―Έ μ¬μ© μ€
μμ½μ΄ μμ : let, class, returnm function
let let = 5; // Error
let function = 'hey'; //Error
5. λ³μ λͺ λͺ μ μ°Έκ³ νκΈ° μ’μ κ·μΉ!
β userNameμ΄λ shoppingCartμ²λΌ μ¬λμ΄ μ½μ μ μλ μ΄λ¦ μ¬μ©
β μ€μλ§κ³Ό a,b,cκ°μ 짧μ μ΄λ¦ μ§μ
β μμ λ§μ κ·μΉμ΄λ μμλ νμ κ·μΉμ λ°λ₯΄κΈ°
β‘οΈ λ³μλͺ μ κ°κ²°νκ³ λͺ ν
β‘οΈ λ³μμ 무μμ λ΄κ³ μλμ§ μ μ€λͺ
β‘οΈ λ³μμ μ΄λ¦μ μ§λ κ²μ κ°μ₯ μ€μνμ§λ§ 볡μ‘ν κΈ°μ
β‘οΈ μ΄λ¦μ§λ€ μ¬λ§νμ§ μλλ‘... κ°μΈμ μΌλ‘ naverμμ΄μ¬μ μ¦κ²¨μ°ΎκΈ° ν΄λκ³ μ 맀ν λλ©΄ μ¨λ¨Ήλ μ€
6. use strict μμ΄ ν λΉνκΈ°
β λ³μλ λλΆλΆ μ μλμ΄μμ΄μΌ μ¬μ© κ°λ₯ν¨
β μ΄μ λ²μ μλ°μ€ν¬λ¦½νΈ μμμλ letμ΄λ const μμ΄λ λ¨μνκ² κ°μ ν λΉν΄ λ³μλ₯Ό μμ±νλ κ²μ΄ κ°λ₯
β use strictλ₯Ό μ°μ§ μμΌλ©΄ κ³Όκ±° μ€ν¬λ¦½νΈμμ νΈνμ± μ μ§λ₯Ό μν΄ μ¬μ©μ΄ κ°λ₯νμ§λ§ κΆμ₯νμ§λ μμ
num = 3; // use strict κ° μμΌλ©΄ μ μ λμ΄μμ§ μμλ λ¨μ ν λΉμΌλ‘ μ¬μ©κ°λ₯
console.log(num); // 3
'use strict';
num = 3; // error: num is not defined
Reference (μ°Έμ‘°)
https://ko.javascript.info/variables
https://ko.javascript.info/var