09. 기술면접 - 자바스크립트 - 호이스팅 (Hoisting)
공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다

호이스팅 (Hosting)
- Hosting(끌어 올리다) 이란 선언한 함수와 변수를 해석기가 가장 상단에 있는 것 처럼 인식한다
- JS 해석기는 코드의 라인 순서와 관계 없이 함수 선언식(함수 표현식 X)과 변수를 위한 메모리 공간을 먼저 확보
- 따라서, function a() 와 var 는 코드의 최상단으로 끌어 올려진 것 (hostied) 처럼 보인다
function a() { return 10; } a(); // 5 function a() { return 5; }
순서대로 동작했다면 a 는 10이 출력되어야 하는 데, 해석기가 함수실행보다 선언을 먼저 인식하기 때문에 a는 재정의 되어서 5가 된다
function a() { return 10; } a(); // 10 var a = function a() { return 5; } a(); // 5
함수 표현식으로 작성을 하게 되는 경우 호이스팅은 적용되지 않아 작성한 순서대로 출력되는 것을 볼 수 있다
이 글은
(새창열림)
본 저작자 표시 규칙 하에 배포할 수 있습니다. 자세한 내용은 Creative Commons 라이선스를 확인하세요.
Creative Commons
본 저작자 표시
'∞. 기술 면접 > 8. 자바스크립트' 카테고리의 다른 글
11. 기술면접 - 자바스크립트 - this (0) | 2021.10.25 |
---|---|
10. 기술면접 - 자바스크립트 - 클로저 (Closure) (0) | 2021.10.22 |
08. 기술면접 - 자바스크립트 - 전개 구문 (Spread Operator) (0) | 2021.10.22 |
07. 기술면접 - 자바스크립트 - 구조 분해 할당 (Destructuring) (0) | 2021.10.22 |
02. 기술면접 - 자바스크립트 - 함수 선언식과 함수 표현식 (0) | 2021.10.22 |
댓글
이 글 공유하기
다른 글
-
11. 기술면접 - 자바스크립트 - this
11. 기술면접 - 자바스크립트 - this
2021.10.25공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다 실행 컨텍스트(Execution Context) 실행컨텍스는 scope, hosting, this, function, closure 등의 동작원리를 담고 있는 자바스크립트의 핵심원리이다 ECMAScript 스펙에 따르면 실행 컨텍스트를 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념이라고 정의한다 좀 더 쉽게 말하자면 실행 컨텍스트는 실행 가능한 코드가 실행되기 이해 필요한 환경이라고 말할 수 있다 여기서 말하는 실행 가능한 코드는 아래와 같다 - 전역 코드 : 전역 영역에 존재하는 코드 - Eval 코드 : eval 함수로 실행되는 코드 - 함수 코드 : 함수 내에 존재하는 코드 일반적으로 실… -
10. 기술면접 - 자바스크립트 - 클로저 (Closure)
10. 기술면접 - 자바스크립트 - 클로저 (Closure)
2021.10.22본 내용은 공부목적으로 MDN 문서를 보며 따라친 내용입니다 들어가기 앞 서 클로저는 함수와 함수가 선언된 어휘적 환경의 조합이다. 클로저를 이해하려면 자바스크립트가 어떻게 변수의 유효범위를 지정하는 지 렉시컬 스코프(Lexical Scoping) 을 이해 해야 한다 렉시컬 스코프 (Lexical Scoping) function init() { var name = "Mozilia"; // name은 init 에 의해 생성된 지역 변수 이다 function displayName() { // displayName() 은 내부 함수 이며, 클로저이다 alert(name); // 부모함수에서 선언된 변수를 사용한다 } displayName(); } init(); - init() 은 지역변수 name 과 함수 d… -
08. 기술면접 - 자바스크립트 - 전개 구문 (Spread Operator)
08. 기술면접 - 자바스크립트 - 전개 구문 (Spread Operator)
2021.10.22이 글은 보호되어 있습니다. -
07. 기술면접 - 자바스크립트 - 구조 분해 할당 (Destructuring)
07. 기술면접 - 자바스크립트 - 구조 분해 할당 (Destructuring)
2021.10.22공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다 개념 속성을 분해하여 원하는 속성만 변수로 담을 수 있다 객체 구조분해 (Object Destructuring) const A = { a: 1, b: 2 } const {a,b} = A console.log(a) // 1 console.log(b) // 2 const A = { a: 1, b: 2 } const {b, a} = A console.log(a) // 1 console.log(b) // 2 const A = { a: 1, b: 2 } const {c,d} = A console.log(c) // undefined console.log(d) // undefined 배열 구조분해 (Object …
댓글을 사용할 수 없습니다.