Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 따라하며 배우는 C언어
- udemy
- 정수론
- DP
- 종만북
- programmers
- Python
- Algospot
- 따라하면서 배우는 C언어
- Math
- server
- graph
- greedy
- 따배씨
- C
- dfs
- Algorithm
- php
- BASIC
- Cleancode
- BOJ
- String
- web
- JavaScript
- sorting
- C언어
- 인프런
- 백준
- BFS
- 생활코딩
Archives
- Today
- Total
몽상실현개발주의
[Udemy/CleanCode] 2.09 호이스팅 주의하기 본문
- 호이스팅
- 런타임(프로그램 동작 할 때) 환경에서 선언과 할당의 분리
- 코드 작성 -> 스코프 예상
- 런타임에서는 예상되로 동작하지 않음
- 그 대표적인 예가 호이스팅 현상
- var 로 선언한 변수가 초기화가 제대로 되어있지 않았을 때 최상단에 undefined 로 끌어올려 선언되어 지는 것
- 호이스팅 예시
var global = 0;
function outer() {
console.log(global); // undefined
var global = 5;
function inner() {
var global = 10;
console.log(global); // 10
}
inner();
global = 1;
console.log(global); // 1
}
outer();
- outer 함수 내부에서 호이스팅 발생
- var 는 function scope
- 호이스팅 예시2
var sum;
console.log(sum()); // 3
console.log(typeof sum); // function
function sum() {
return 1 + 2;
}
console.log(sum()); // 3
- 함수도 호이스팅 됨
- 함수 선언문으로 변수를 덮어씌움
- 호이스팅 예시3
var sum = 10;
console.log(typeof sum); // number
console.log(sum()); // sum is not a function
function sum() {
return 1 + 2;
}
- 함수의 호이스팅 피하기
- 변수 선언 => 할당 => 초기화 완료 => 정확한 분리
- 요약
- 호이스팅
- 런타임 시, 선언이 최상단으로 끌어 올려짐
- 코드를 작성 할 때 예측하지 못한 실행결과가 도출되어 문제 야기
- 호이스팅을 피하기 위해, var 사용을 지양
- const & let 사용
- 함수도 호이스팅 됨 주의
- 함수 표현식을 사용
- 호이스팅
'Language > Javascript' 카테고리의 다른 글
분산된 함수에서 에러 관리를 위한 중앙 집중식 에러 데이터 핸들링 전략 (0) | 2024.02.27 |
---|---|
[Udemy/CleanCode] 2.08 임시변수 제거하기 (0) | 2022.09.08 |
[Udemy/CleanCode] 2.07 전역 공간 사용 최소화 (0) | 2022.09.08 |
[Udemy/CleanCode] 2.06 function scope & block scope (0) | 2022.09.08 |
[Udemy/CleanCode] 2.05 var 를 지양하자 (0) | 2022.09.08 |
Comments