Languages/JavaScript

Languages/JavaScript

[JavaScript] 일급 객체인 함수의 선언 방식과 화살표 함수

일급 객체(First-class Object) JS에서 함수는 일급 객체(First-class Object)에 해당한다. 일급 객체란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. 이에 대한 정의는 아래와 같다. 객체지향 프로그래밍에서 자주 언급되는 단어인데 파이썬에서도 해당 개념은 물론 있다만 익숙해진 후엔 인지하고 사용하지는 않았던 것 같다. 변수에 할당(assignment)할 수 있다. 다른 함수를 인자(argument)로 전달 받는다. 다른 함수의 결과로써 리턴될 수 있다. 함수 선언 방식 함수 객체는 위의 조건을 모두 충족시키므로 일급 객체라고 볼 수 있다. 일급 객체이므로 고차 함수를 만들 수 있고 콜백을 사용할 수 있다. 이러한 일급 객체인 함수를 선언하는 방법..

Languages/JavaScript

[JavaScript] 변수 선언 시 var, let, const의 차이

자바스크립트는 매니지드 언어(managed language)이다. 이는 개발자가 직접 메모리를 제어하지 못한다는 것을 뜻한다. 파이썬과 같이 직접 메모리 주소를 통해 값을 저장하고 참조할 필요가 없고 변수를 통해 안전하게 값에 접근이 가능하다. 여기서 ES6 이후부터 var, let, const로 변수를 선언할 수 있는데 각각의 차이점을 잘 알고 사용하는 것이 좋다. 1. var 변수 재선언 가능 함수 스코프(functional scope)로 호이스팅이 발생 2. let 변수 재선언 불가능 변수 재할당 가능 블록 스코프(block scope)로 호이스팅이 발생 3. const 변수 재선언 불가능 변수 재할당 불가능 블록 스코프(block scope)로 호이스팅이 발생 console.log(a); var ..

Languages/JavaScript

[JavaScript] 호이스팅(Hoisting)

호이스팅(Hoisting)이란 자바스크립트 인터프리터가 변수와 함수 안에 있는 선언들을 모두 해당 함수 유효 범위의 최상단에 선언하는 것을 말한다. 하지만 주의해야 할 점은 실제로 위치가 옮겨지는 것이 아니라 그렇게 된 것처럼 실행이 된다는 뜻이라는 것을 염두에 두어야 한다. 즉, 선언이 코드 실행보다 먼저 메모리에 저장되는 과정으로 인해 야기되는 현상이다. 변수가 생성되는 절차는 아래와 같다. 1단계: 선언 단계(Declaration phase) - 변수를 실행 컨텍스트의 변수 객체에 등록한다. - 이 변수 객체는 스코프가 참조하는 대상이 된다. 2단계: 초기화 단계(Initialization phase) - 변수 객체에 등록된 변수를 위한 공간을 메모리에 확보한다. - 이 단계에서 변수는 undefi..

AlienCoder
'Languages/JavaScript' 카테고리의 글 목록 (2 Page)
loading