ννμ(Expression) vs λ¬Έ(Statement)
μλ°μ€ν¬λ¦½νΈμλ 2κ°μ§ μ£Όμ λ¬Έλ²μ΄ μμ΅λλ€.
- ννμ(Expression)
- λ¬Έ(Statement)
ννμ(Expression)μ λ¬Έ(Statement)μ²λΌ λμν μ μμ§λ§,
λ¬Έ(Statement)μ ννμ(Expression)μ²λΌ λμν μ μμ΅λλ€.
ννμ(Expression)
- ννμ(Expression)μ λ¨μΌ κ°μ μμ±ν©λλ€.
- κ°μΌλ‘ νκ°λ μ μλ λ¬Έμ μ λΆ ννμμ λλ€.
- κ° μ체λ νλμ κ°μΌλ‘ νκ°λκΈ°μ ννμμ λλ€.
10
3.14
'eun'
- μ무리 ννμμ΄ κΈΈμ΄μ§λλΌλ κ²°κ΅ λ¨μΌ κ°μ μμ±νκΈ°μ ννμμ λλ€.
10 + 10
20 * 20
(Math.random() * (100 - 10)) + 20 // 95.80295646022229
true == 1; // true
- 리ν°λ΄μ κ°μΌλ‘ νκ°λκΈ°μ, 리ν°λ΄λ κ²°κ΅μ ννμμ λλ€.
{name: 'eun', address:'Seoul'} // κ°μ²΄ 리ν°λ΄
[ 1, 2, 3] // λ°°μ΄ λ¦¬ν°λ΄
function() {} // ν¨μ 리ν°λ΄
/[A-Z]+/g // μ κ· ννμ 리ν°λ΄
- ν¨μ νΈμΆμ κ²°κ³Ό λν νλμ κ°μ λ°ννκΈ°μ μμ λλ€.
λ¬Έ(Statement)
- λ¬Έμ νλ‘κ·Έλ¨μ ꡬμ±νλ κΈ°λ³Έ λ¨μμ΄μ μ΅μ μ€ν λ¨μμ λλ€.
- Javascriptμμ λ¬Έμ κ°μ΄ λ€μ΄κ°μΌ ν κ³³μ λ€μ΄κ° μ μμ΅λλ€.
- λ°λΌμ λ¬Έμ ν¨μμ μΈμ, λμ μ°μ°λ κ°, μ°μ°μμ νΌμ°μ°μ, λ°ν κ°μΌλ‘ μ¬μ©ν μ μμ΅λλ€.
foo(if (true) { return 2 }) // Error
Javascriptμμ μ¬μ©λλ λ¬Έμ μλμ κ°μ΅λλ€.
if
if-else
while
do-while
for
switch
for-in
debugger
variable declaration
if (true) { 9 + 9 } // 18
λ¬Έμ μ¬μ©ν΄μ κ²°κ³Όκ°μ μΆλ ₯νμμ§λ§, λ¬Έμ κ²°κ³Όλ₯Ό ννμμ²λΌ μ¬μ©ν μ μμ΅λλ€.
μ§κΈκΉμ§ λ°°μ΄ λ΄μ©μΌλ‘λ λ¬Έμ μλ¬΄λ° κ°λ λ°ννλ©΄ μ λμ΅λλ€.
λ°λΌμ μ°λ¦¬λ μ΄ λ°νλ κ°μ μ΄μ©ν μ μκ³ , λ°λΌμ λ¬Έ(Statement)μ΄ λ°ννλ κ°μ μλ―Έκ° μμ΅λλ€.
ν¨μ μ μΈ, ν¨μ ννμ, λ€μλ(Named) ν¨μ ννμ
- ν¨μ μ μΈλ¬Έμ λ¬Έ(Statement)μ λλ€.
function foo(func) {
return func.name
}
- μ΅λͺ ν¨μλΌ λΆλ¦¬λ ν¨μ ννμ λν μ(Expression)μ λλ€.
foo(function () {} ) // ''
- μ΄λ¦μ΄ μλ λ€μλ(Named) ν¨μ ννμ λν μ(Expression)μ λλ€.
foo(function myName () {} ) // 'myName'
- μλ κ°μ΄ λ€μ΄μ¬ κ³³μ ν¨μλ₯Ό μ μΈνκ² λλ©΄, Javascriptλ κ·Έ ν¨μλ₯Ό κ°μΌλ‘ μ¬μ©νλ €κ³ ν©λλ€.
- μ μΈλ ν¨μκ° κ°μΌλ‘ μ¬μ©λ μ μλ€λ©΄ μλ¬κ° λ°μν©λλ€.
if () {
function foo () {} // ν¨μ μ μΈλ¬Έ
}
function foo () {} // ν¨μ μ μΈλ¬Έ
function foo () {
function bar() {} //ν¨μ μ μΈλ¬Έ
}
function foo () {
return function bar () {} // λ€μλ ν¨μ ννμ
}
foo(function () {}) // μ΅λͺ
ν¨μ ννμ
function foo () {
return function bar () {
function baz () {} // ν¨μ μ μΈλ¬Έ
}
}
function () {} // SyntaxError: function statement requires a name
if (true){
function () {} //SyntaxError: function statement requires a name
}
ννμμΈ λ¬Έκ³Ό ννμμ΄ μλ λ¬Έ
- ννμμ λ¬Έμ μΌλΆμΌ μλ μκ³ κ·Έ μμ²΄λ‘ λ¬Έμ΄ λ μλ μμ΅λλ€.
var x; // λ³μ μ μΈλ¬Έμ κ°μΌλ‘ νκ°λ μ μμΌλ―λ‘ ννμμ΄ μλλλ€.
x = 1+2; // x = 1+2λ ννμμ΄λ©΄μ μμ ν λ¬Έμ΄κΈ°λ ν©λλ€.
- ννμμ λ¬Έμ κ°μΌλ‘ νκ°λ μ μλ λ¬Έμ΄λ©°, ννμμ΄ μλ λ¬Έμ κ°μΌλ‘ νκ°λ μ μλ λ¬Έμ λ§ν©λλ€.
var foo = var x; //Uncaught SyntaxError: Unexpected token 'var'
// ννμμ΄ μλ λ¬Έμ κ°μ²λΌ μ¬μ©ν μ μλ€.
ννμμ λ¬ΈμΌλ‘ λ³ν
2+2; // ννμ λ¬Έ
foo(); // ννμ λ¬Έ
2 + 2
λ μ(Expression)μ λλ€.- μ λμ μΈλ―Έμ½λ‘
;
μ μΆκ°ν2 + 2;
λ ννμ λ¬Έ(Expression Statement)μ λλ€.
console.log(2+2;) // Error. μΈλ―Έμ½λ‘ μ΄ μΆκ°λ λ¬Έ(Statement)μ κ°μ΄ λ μ μκΈ°μ μ(Expression)μ μ리μ λ€μ΄κ°μ§ λͺ»ν©λλ€.
'π₯ Front-End > JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JS] 10. setTimeout & setInterval & requestAnimationFrame (0) | 2022.04.20 |
---|---|
[JS] 8. IIFE & λͺ¨λ & λ€μμ€νμ΄μ€ (0) | 2022.04.18 |
[JS] λͺ¨λμλ°μ€ν¬λ¦½νΈ Deep Dive - μ°μ°μ (0) | 2022.04.07 |
[JS] λͺ¨λμλ°μ€ν¬λ¦½νΈ Deep Dive - λ°μ΄ν° νμ (0) | 2022.04.06 |
[JS] 6. ν¨μ μ€μ½ν & λΈλ‘ μ€μ½ν & λ μ컬 μ€μ½ν (1) | 2022.04.06 |