본문 바로가기

분류 전체보기474

호이스팅 호이스팅(Hoisting) 함수 선언부가 유효범위 최상단으로 끌어올려지는 현상 보통의 코드들은 위에서 아래로 읽어가며 작동하지만 호이스팅 현상은 호출을 선언보다 먼저 해도 동작이 되는 현상이다. // 호이스팅 // 함수 선언부가 유효범위 최상단으로 끌어 올려지는 현상 const a = 7 // 호이스팅 현상 발생 double() function double() { console.log(a * 2) } 2021. 5. 26.
즉시 실행 함수 즉시 실행 함수: 선언을 하지 않고 바로 사용가능한 함수 실행중 아래와 같은 에러 메시지가 생긴다면 위쪽 함수 호출하는 부분에서 세미콜론(;)이 빠져있는지 확인 후 넣어준다 Uncaught TypeError: (intermediate value)(...) is not a function // 즉시실행함수 // IIFE, Immediately-Invoked Function Expression const a = 7 // 일반 함수 예제 function double() { console.log(a * 2) } double(); //즉시실행함수 예제(앞에 함수에 반드시 끝났다는 표시에 ; 을 입력해주어야 한다) (function () { console.log("즉시 실행", a + 3) })(); (functi.. 2021. 5. 26.
화살표 함수 예제 화살표 함수: () => {} 축약형으로 입력 할 수 있다. 2개이상의 매개변수 입력시 반드시 소괄호()를 입력해줘야 한다. 객체 데이터 또한 반환이 가능한데 그때에는 소괄호를 먼저 결과쪽에 감싸주고 중괄호를 입력해준다. // 화살표 함수 // () => {} vs function () {} const double = function (x) { return x * 2 } console.log('double: ', double(7)) const doubleArrow = (x) => { return x * 2 } console.log('doubleArrow: ', doubleArrow(5)) // 화살표 함수는 축약형으로 표현이 가능하다 const doubleArrow2 = x => x * 8 console.. 2021. 5. 26.
함수 arguments 객체 사용 함수에서 매개변수가 너무 많아 나열하기 힘들 때 사용하기 적합 function sum() { console.log(arguments) return arguments[0] + arguments[1] + arguments[2] + arguments[3] } console.log(sum(1, 5, 9,4)) 2021. 5. 26.
형 변환 형 변환(Type conversion) Truthy (참 같은 값) true, {}, [], 1, 2, 'false', -11, '3.44'..... Falsy (거짓 같은 값) false, '', null, undefined, 0 -0, NaN // 형 변환(Type conversion) // Truthy (참 같은 값) // true, {}, [], 1, 2, 'false', -11, '3.44'..... // Falsy (거짓 같은 값) // false, '', null, undefined, 0 -0, NaN const a = 1; const b = '1'; // 일치 연산자 false console.log(a === b) // 동등 연산자(형변환이 일어난다) true // 안쓰는 것을 권장한다. .. 2021. 5. 26.
변수 유효범위 유효범위: 변수가 동작할 수 있는 범위 var: 함수레벨의 유효범위를 가진다. const, let: 블록레벨의 유효범위를 가진다. var를 사용할 경우 의도치 않은 값을 가져올 수도 있기 때문에 const, let 변수를 사용하는 것을 권장한다. // 번수 유효범위(Variable Scope) // var, let, const // let, const: 블록레벨의 유효범위를 가진다 // var: 함수레벨의 유효범위를 가진다 function scope() { if (true) { const a = 123; console.log(a) var b = 222; } console.log(b) // console.log(a) //에러발생 } // console.log(b) //에러발생 scope() 2021. 5. 26.