ννλ€ μ¬μ©νλ λ³μλ 무μμΌκΉμ? λ μμ, 리ν°λ΄κ³Ό κ°μ 무μμΌκΉμ? μ΄λ° μ©μ΄λ μλ°μ€ν¬λ¦½νΈλ₯Ό λ λ μ»΄ν¨ν° κ³Όνμ λ리 μ¬μ©νλ μ©μ΄μ
λλ€. κ°λ΅νμ§λ§ μ ννκ² μ§κ³ λμ΄κ°μ£ .
κ°μ μ°Έμ‘°νλ μ΄λ¦μΌλ‘, κ°μ μΈμ λ λ³ν μ μμ§λ§ μ΄ κ°μ κ°λ¦¬ν€λ μ΄λ¦μ λ³νμ§ μμ΅λλ€.
μ»΄ν¨ν°λ λͺ¨λ λ°μ΄ν°λ₯Ό 0κ³Ό 1λ‘ μ μ΄ν©λλ€. κ·Έλ¬λ μ¬λμ 0κ³Ό 1λ‘ μ»΄ν¨ν°λ₯Ό μ μ΄ν μ μμ£ . κ·Έλ κΈ°μ μ¬λμκ² μ΅μν ννλ‘ λ°μ΄ν°λ₯Ό λ€λ£Ήλλ€.
μ΅μν ννλΌ ν¨μ μ«μ, λ¬Έμ, λ μ§ λ±μ΄ μμ΅λλ€. μ΄λ₯Ό κ°λ¨ν λ°μ΄ν° νμ
(Data Type) μ΄λΌκ³ λΆλ₯΄μ£ . λ³μλ μ΄ λ°μ΄ν° νμ
μ λ€λ£¨κΈ° μν μ 1λ¨κ³μ
λλ€.
κ°λ Ή μ°λ¦¬κ° 5λΌλ λ°μ΄ν°λ₯Ό λ€λ£¨λ €κ³ νλ€λ©΄ 5λΌλ λ°μ΄ν°λ₯Ό μ μ₯ν λ©λͺ¨λ¦¬κ° νμν©λλ€. μ»΄ν¨ν°μ νΉμ μ°μ°μ κ±°μ³ 5λΌλ λ°μ΄ν°λ μ΄λ€ λ©λͺ¨λ¦¬μ μ£Όμμ λ΄κΈ°κ² λ©λλ€.
λ¨, κ·Έκ²μ μ¬λμ΄ μ μλ μμΌλ©° νΉ μμλ λ§μ λΆνΈν¨μ΄ μκΈ°κ² μ£ ? μ΄λ¬ν μ΄μ λ‘ λ³μκ° μ μ₯λ μμΉλ₯Ό κΈ°μ΅νλ κ²μ΄ λ°λ‘ λ³μμ
λλ€.
let a = 1; // λ³μμ μ μΈκ³Ό ν λΉ
a = 2; // λ³μμ μ¬ν λΉletμ΄ λ¬΄μμΈμ§λ λ€μ μ₯μ μ§ννλ©΄μ μΈκΈν©λλ€.
λ³μμ λμΌν κ°μ μ°Έμ‘°νλ μ΄λ¦μ΄μ§λ§, λ³νμ§ μλ κ°μΌλ‘ μ½μλ λ³μμ λλ€.
ES6μ μ§μ
νλ©΄μ μκΈ΄ κ°λ
μΌλ‘ ν λ² ν λΉν κ°μ λ°κΏ μ μλ λ³μμ
λλ€. λ³΄ν΅ λλ¬Έμμ λ°μ€λ‘ λ³μλ₯Ό μ μΈν©λλ€. const LIMIT_NUM = 10000; μ²λΌ λ§μ΄μ£ .
κ·ΈλΌ μ λ±μ₯ν κ²μΌκΉμ?
μ΄ λ΄μ©μ μκΈ° μν΄μλ κΈ°μ‘΄ λ³μλ₯Ό μ μΈνλ μλ³μ(identifier)μΈ varμ μλ°μ€ν¬λ¦½νΈμ μΈμ΄μ νΉμ±μΈ νΈμ΄μ€ν
(Hoisting), μ€μ½ν(Scope) κ°λ
μ μμμΌ ν©λλ€. κΉκ² λ€λ£¨κΈ°μλ λ무 λ°©λν μμ΄λ―λ‘, λ€λ₯Έ νμ΄μ§λ‘ λΆλ¦¬ν΄μ μ 리νκ² μ΅λλ€.
constλΌλ μμν μλ³μμ λ±μ₯κ³Ό ν¨κ», μ¬λ¬ λ² ν λΉν΄μΌνλ λ³μμ νμμ±λ λλ ·ν΄μ‘μ΅λλ€. μμ νλ letμ΄ κ·Έκ²μΈλ°μ, μ΄ μλ³μλ μ½μ΄κ° μλλΌ λμ¬ν let κ·Έ μ체μ
λλ€.
let a = 1; ννλ‘ var μλ³μμ λμΌν μ½λ© νμ€μΌλ‘ μμ±νλ©° μ¬λ¬ λ² μ¬ν λΉν΄λ λ¬Έμ κ° λμ§ μμ΅λλ€.
λ³μ, μμ, ν¨μμ μ΄λ¦μΌλ‘ μ§μΉν κ²μ μλ³μλΌκ³ λΆλ¦ λλ€.
μλ°μ€ν¬λ¦½νΈμμ μλ³μλ₯Ό μ μνλ κ·μΉμ΄ μμ΅λλ€.
λ€μ΄λ° 컨벀μ (Naming Convention)μ΄λΌκ³ λ ν©λλ€.
- μλ³μλ λ°λμ κΈμ, λ¬λ¬ κΈ°νΈ($), λ°μ€(_)λ‘ μμν©λλ€.
- μλ³μμλ κΈμ, μ«μ, λ¬λ¬ κΈ°νΈ, λ°μ€λ§ μΈ μ μμ΅λλ€.
- μ λμ½λ λ¬Έμλ μΈ μ μμ΅λλ€.
- μμ½μ΄ λ μλ³μλ‘ μΈ μ μμ΅λλ€. μλμμ μμ½μ΄μ μ’ λ₯λ₯Ό μ΄ν΄λ³Ό μ μμ΅λλ€.
ES5, 6 λ± λ²μ μ΄ μ λ°μ΄νΈ λλ©΄μ μΆκ°λλ μμ½μ΄λ μμ΅λλ€.
| μμ½μ΄μ μ’ λ₯(μνλ²³ μ) | ||||
|---|---|---|---|---|
| abstract | arguments | boolean | break | byte |
| case | catch | char | class | const |
| continue | debugger | default | delete | do |
| extends | false | final | finally | float |
| for | function | goto | if | implements |
| import | in | instanceof | int | interface |
| let | long | native | new | null |
| package | private | protected | public | return |
| short | static | super | switch | synchronized |
| this | throw | throws | transient | true |
| try | typeof | var | void | volatile |
| while | with | yield | ||
μ΄ μλ³μλ₯Ό νκΈ°νλ λ°©μμλ μ¬λ¬κ°μ§κ° μλλ°μ, λνμ μΈ λ°©λ²μΌλ‘λ μλμ κ°μ΅λλ€.
/* μΉ΄λ© μΌμ΄μ€(camelCase) */
// 1. λ³μ
let firstName = 'aaa';
// 2. μμ
const FIRST_NAME = 'AAA';
// 3. ν¨μ
const sum = () => {};
/* νμ€μΉΌ μΌμ΄μ€(PascalCase) */
// 1. ν΄λμ€ λ±μ κ°μ²΄
class FirstName {};
/* νκ°λ¦¬μΈ μΌμ΄μ€(typeHungarianCase) */
// 1. type + identifier
let strFirstName = 'string name';
// 2. DOM(Document object model)μ Node(λ¨μ)
const $myID = document.querySelector('#myID');
// 3. DOMμ λ
Έλ(볡μ)
const $$elem = document.querySelectorAll('.myID');μλ³μ νκΈ°λ²μ μ λμ μΈ κ·μΉμ΄ μλκΈ° λλ¬Έμ, νλ‘μ νΈμ νΉμ λ΄λΆ κ·μ μ λ°λ₯΄λ κ²μ΄ λ§μ΅λλ€!
μ€, μ°λ¦¬λ μ΄λ―Έ μ¬μ©νμ΅λλ€. let a = 1; κ·Έλ μ΅λλ€. 1μ΄ λ°λ‘ 리ν°λ΄μ΄μμ!
리ν°λ΄μ κ°μ νλ‘κ·Έλ¨ μμμ μ§μ μ§μ νλ μλ―Έμ λλ€. μ¦, 리ν°λ΄μ κ°μ λ§λλ λ°©λ²μ λλ€. μλ°μ€ν¬λ¦½νΈλ κ°λ°μκ° μ 곡νλ 리ν°λ΄ κ°μ λ°μ λ°μ΄ν°λ₯Ό μμ±ν©λλ€.
μλ³μμ 리ν°λ΄μ λΆλ¦¬λ κ°λ μ μ ννκ² μ΄ν΄νκ³ λμ΄κ°λ΄ μλ€.
let a = 'a';μ¬κΈ°μ aλ μλ³μμ
λλ€. λΉμ°ν, 'a'λ 리ν°λ΄μ
λλ€. κ·ΈλΌκ³Ό λμμ μλ³μ aμ κ° μ
λλ€. μλ°μ€ν¬λ¦½νΈμμλ λ°μ΄ν(ν° λ°μ΄νλ μκ΄ μμ΅λλ€)λ₯Ό ν΅ν΄ μλ³μμ 리ν°λ΄μ ꡬλΆν©λλ€!
리ν°λ΄ νκΈ°λ²μ λν μμΈν λ΄μ©μ μ¬κΈ°λ₯Ό μ°Έμ‘°νμΈμ.
νλ‘κ·Έλ¨ μ½λλ₯Ό μμ±ν¨μ μμ΄μ, μ°λ¦¬λ μ»΄ν¨ν°μκ² μ§μλ₯Ό ν νμκ° μμ΅λλ€. 무μμ, μ΄λ»κ² μΈ κ²μΈμ§λ₯Ό λ§μ΄μ£ . μ΄ μνλ₯Ό νλ λ¨μκ° μ΄ νμ΄μ§μμ μ€λͺ
ν κ²λ€μ
λλ€.
νλ‘κ·Έλ¨μ 무μμ κΈ°μ€μΌλ‘ μνλ κΉμ? μν λ¨κ³λ³λ‘ λ¬Άμ΄λμ λͺ λ Ήμ΄μ μ§ν©, κ·Έκ²μ΄ λ°λ‘ λ¬Έμ λλ€.
λ¬Έμ ꡬμ±μ μ¬λ¬κ°μ§μ λλ€. μ°μ°μ(Operator), ννμ(Expression), ν€μλ(Keyword) λ±μΌλ‘ μ΄λ£¨μ΄μ§λ©°, λ°λμ μΈλ―Έμ½λ‘ (;)μΌλ‘ λλ©λλ€.
- λ¨, μλ°μ€ν¬λ¦½νΈμμλ ASI(Automatic Semicolon Insertion, μλ μΈλ―Έμ½λ‘ μ½μ )μ΄λΌλ κΈ°λ₯μ΄ μ‘΄μ¬ν©λλ€. ASIλ μλ°μ€ν¬λ¦½νΈ μ½λμ μΈλ―Έμ½λ‘ λλ½μ μμ§μ΄ μλμΌλ‘ μ½μ νμ¬ μ μμ μΌλ‘ ν΄μν μ μκ² ν©λλ€. κ·Έλ¬λ μΌλ°μ μΈ μΈλ―Έμ½λ‘ μ λλ½μΌλ‘-μ μ΄λ¬Έ, λ°λ³΅λ¬Έ λ±μ μΈλ―Έμ½λ‘ λλ½μ΄ μλ- μλ°μ€ν¬λ¦½νΈ μ€νμ λ¬Έμ κ° μΌμ΄λμ§ μμΌλ κ±±μ νμ§ λ§μΈμ!
κ·Έλμ, μ νν λ¬Έμ΄ λκΉμ? 볡μ‘νκ² μκ°νμ§ λ§κ³ , μΈλ―Έμ½λ‘ μ΄ λλκΈ° μ μ μ°κ²°λμ΄ μλ λΆλΆ λΆλΆμ΄ μ λΆ λ¬Έμ΄λΌκ³ μ΄ν΄νμΈμ!
/* λ¬Έλ€μ μμμ μλλ‘ μ€νλ©λλ€.
* λ¬Όλ‘ μμλ 쑰건문, λ°λ³΅λ¬Έ, ν¨μ νΈμΆ λ±μΌλ‘ λ³κ²½λ μ μμ΅λλ€.
*/
let hello = 'hello!';
const YOU = 'Chalie';
while(true){
if(hello === 'hello!'){
console.log(hello + ' ' + YOU);
hello = 'bye!'
} else {
console.log(hello + ' ' + YOU);
break;
}
}μμ§μ΄ μ½λλ₯Ό ν΄μνλ©΄
κ°μ΄ λλ ꡬ문μ λλ€.
μ΄λ ΅κ² νννλ©΄ νλμ κ°μΌλ‘ νκ°λλ κ²μ
λλ€. μ’
λ₯λ μλμ κ°μ£ .
- κ°(리ν°λ΄)
- λ³μ
- κ°μ²΄ νλ‘νΌν°
- λ°°μ΄ μμ
- ν¨μ νΈμΆ
- νΌμ°μ°μμ μ°μ°μμ μ‘°ν© λ±
μλ₯Ό λ€μ΄λ³ΌκΉμ?
1 // μ«μ 1μ
λλ€.
1 * 2 // μ«μ 2μ
λλ€.
1 === 2 // λ€λ₯΄λκΉ falseμ£ ?μ΄μ²λΌ νκ°λ μ΄νμ κ°μ ννμμ΄λΌκ³ ν©λλ€.
κ·ΈλΌ ν·κ°λ¦΄ μ μμ΅λλ€. λΉμ·νμ§ μλμ? μ΄λ κ² μ΄ν΄νμΈμ. λ¬Έμ ννμμ μμ μ§ν© μ λλ€.
λ°λ‘ μ½λλ₯Ό λ³ΌκΉμ?
// μ μΈλ¬Έ(Declaration statement) : ννμμ ν¬ν¨νλ λ¬Έ
let num;
// ν λΉλ¬Έ(Assignment statement) : ννμμ΄μ λ¬Έ κ·Έ μ체
num = 5;
// μ μΈλ¬Έ
const MAX_NUM = num * 10;
// ν λΉλ¬Έ
num = 0;ννμμ κ°μ λ§λ€μ§λ§ κ·Έ μ΄μμ νμλ λΆκ°λ₯ν©λλ€. κ·Έλ¬λ λ¬Έμ κ·Έ μ΄μμ νμκ° κ°λ₯νμ£ . λ°λΌμ ννμμ μμ μ§ν©μ΄λΌκ³ μ΄ν΄νμλ κ²μ΄ μ’μ΅λλ€.
2021-09-04, InSeong-Soκ° μμ±ν μͺ½μ§ μνμ μ€ν°λμκ³Ό ν¨κ» μ§νν ν μλ¬Έμ μ κ°μ§λ€ ν΄κ²°ν λ΄μ©
- var λ§ νΈμ΄μ€ν λλ€κ³ νμ ¨λλ° let, constλ νΈμ΄μ€ν λμ§λ§ μ‘μΈμ€κ° λΆκ°λ₯ν κ²μΌλ‘ μκ³ μμ΅λλ€.
-
μμ±μκ° μλͺ» μκ³ μμμΌλ©°, TDZ(Temporal Dead Zone)μ μν΄
ReferenceErrorκ° λλ―λ‘ νΈμ΄μ€ν μ μ€νλλ μ‘μΈμ€ μμ μμ μλ¬λ₯Ό λ±λ κ²μ λλ€. -
μ°Έμ‘° Link
- μ±
μλ
var a = 3;μ΄λΌλ λ¬Έμ λ³μμ μ μΈκ³Ό ν λΉμ κ°μ΄ μμ±νλ ν¨μΆ ννμΈλ° μ΄λ° ν¨μΆ λ¬Έμ κ°μΌλ‘ νκ°λ μ μμ΄μ ννμμ΄ μλλΌκ³ μ νμμ΅λλ€... κ·ΈλΌconst arr = Array.from({length:3}, () => 0);μ λ¬Έ μλκ°μ?
λ§μ΅λλ€..! μ λ΅μ λ¬Έμ΄μμ΅λλ€. κΈλ‘λ§ μ΄ν΄ν΄μ ννμμ΄λΌκ³ μκ°νμ΅λλ€.
ν λ‘ λμ μ 리νμλ©΄ μλμ κ°μ΅λλ€.
- μ μΈλ¬Έμ ννμμ ν¬ν¨(ννμμ΄ μλλ€), λ¬Έμ
λλ€.
- μ μΈλ¬Έμλ μ’νμ ν€μλκ° λ€μ΄κ°λλ€.
- var x; λλ var x = 3; λͺ¨λ λ¬Έμ λλ€.
- ν λΉλ¬Έμ ννμμ΄κ³ , λ¬Έμ
λλ€.
- x = 3; λλ 3 λͺ¨λ ννμμ λλ€.
