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( (2, 9/3, function () {}) ) // function (){} console.log( (3, true ? 2+2 : 1+1) ) // 4 function fa1 () {return 1, 2, 3, 200} 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 === 1) continue first; if (j === 1) break 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 |