1. expression


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// expression
{}+1    // 1
{1}+2   // 2
{1+2}+2 // 2
2+(2*3)/2 // expressions
 
const assignedVariable = 2//this is a statement, assignedVariable is state
 
assignedVariable + 4 // expression
assignedVariable * 10 // expression
assignedVariable - 10 // expression
console.log(assignedVariable); // 2
 
const foo = (n) => {
  return n//explicit return for readability
}
assignedVariable2 = foo(14
console.log(assignedVariable2); // 14
cs




2. 함수 선언 및 허용범위


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// 함수선언
function fooFunc1 (func) {
  return func.name
}
 
console.log(fooFunc1(function () {} )) // ""
console.log(fooFunc1(function sanghyun () {} )) // "sanghyun"
 
 
// 허용 범위
if (true) {
  function fooFunc2 () {} // top level of block, declaration
}
 
function fooFunc2 () {} //global level, declaration
 
function fooFunc2 () {
  function bar() {} //top level of block, declaration
}
 
function fooFunc2 () {
  return function bar () {} // named function expression
}
 
fooFunc2(function () {}) // anonymous function expression
 
function fooFunc2 () {
  return function bar () {
    function baz () {} // top level of block, declaration
  }
}
cs




3. , 쉼표 사용


1
2
3
4
5
6
7
8
// 쉼표, 사용
// 모든 표현식은 왼쪽에서 오른쪽으로 계산되고 마지막 표현식이 반환된다.
console.log( (1+2,3,100) ) //100
console.log( (29/3function () {}) ) // function (){}
console.log( (3true ? 2+2 : 1+1) ) // 4
 
function fa1 () {return 123200}
console.log(fa1()) //200
cs




4. 익명함수 선언 및 호출


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 익명함수 선언 호출
 
(function () {
  console.log("immediately invoke anonymous function call")
})() // "immediately invoke anonymous function call"
 
(function () {
  return 3
})() // 3
 
console.log((function () {
  return 3
})()) // 3
 
//you can also pass an argument to it
(function (a) {
  return a
})("I'm an argument"// I'm an argument
cs




5. 변수와 문자열 표현방법


1
2
3
4
5
// 변수와 문자열 표현방법
var value = 123;
console.log('test ${value}'//=> test ${value}
console.log(`test ${value}`) //=> test 123
console.log('test '+value) //=> test 123
cs




6. label 활용방법


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// label 활용 
loop1: {
  for (const i = 0; i < 2; i++) {
    for (const n = 0; n <2; n++) {
      console.log(n);
      break loop1 //breaks outer loop and stops entire loop
    }
  }
}
 
first: for (var i = 0; i < 3; i++) {
  second: for (var j = 0; j < 3; j++) {
    if (i === 1continue first;
    if (j === 1break second;
    console.log(`${i} & ${j}`);
  }
}
cs



7. 실습 코드


https://repl.it/@shlee0882/expression-and-statement


https://repl.it/@shlee0882/expression-and-statement-2



'전체 > JS & Jquery' 카테고리의 다른 글

JS Event Loop(이벤트 루프)  (2) 2019.04.26
JS IIFE, Modules  (0) 2019.04.10
JS scope from function, collision avoidance  (0) 2019.04.09
JS ==, === 의 비교  (0) 2019.04.08
JS Implicit Coercion(형변환)  (0) 2019.04.08

+ Recent posts