반응형
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
- RPA
- 자료구조
- programmers
- 자바스크립트
- 알고리즘
- 백준
- 모던자바스크립트
- 파이썬
- algoritms
- SSAFY
- 로보어드바이저
- 혁신금융서비스
- 신한투자증권
- JS
- 자문형
- React #Web #프런트엔드
- 프로그래머스
- BAEKJOON
- algorithms
- BFS
- JavaScript
- Ai
- 일임형
- Algorithm
- dfs
- Python
- frontend
- 스택
- 큐
- pyhton
Archives
- Today
- Total
Step by Step
모던자바스크립트 Deep Dive - 4장(변수) 본문
반응형
var score;
console.log(score); //undefined
선언 후 초기화 => 변수를 사용하려면 항상 선언이 필요하다.
선언하지 않은 식별자에 접근하면 ReferenceError(참조에러)가 발생한다.
console.log(score);
var score; //undefined
변수 선언은 런타임 이전에 먼저 실행한 후 평가과정이 끝난 후 선언문을 제외한 소스코드를 실행한다.
변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징을 변수 호이스팅이라고 한다.
var value = 80;
변수선언을 한 문장으로 단축해도 선언, 할당 등 두가지로 나누어진다.
주의할 점으로 할당과 선언은 실행되는 시점이 다르다.
console.log(newScore);
var newScore = 80;
console.log(newScore); //undefined , 80
값을 할당하기 전에 이미 변수는 선언되었고 첫 줄의 console에서는 선언되었지만 할당되지않은 newScore의 값이 저장되었고 3번쨰 코드에서는 값이 할당된 80이 출력된다.
console.log(score2);
score2 = 100;
var score2;
console.log(score2); //undefined, 100
var을 사용하면 재할당이 가능하다. 사실 처음에 선언하면 undefined로 초기화되기 떄문에 처음에 값을 할당하는 것도 재할당이다.
undefined => 80 으로 재할당될 때 다른 메모리에 저장, 80 => 90 으로 재할당하면 다시 다른 메모리에 저장한다.
재할당 후 남은 undefined, 80은 더이상 필요하지 않으므로 가비지 콜렉터에 의해 삭제되지만 그 시기는 알 수 없다.
자바스크립트는 가비지 콜렉터를 내장하고 있는 managed 언어로서 가비지 콜렉터를 통해 메모리 누수를 방지한다.
var first-name //특수문자 -가 사용되었음
var 1st //숫자가 가장 먼저 옴
var this //예약어
반응형
'Javascript Study' 카테고리의 다른 글
모던자바스크립트 Deep Dive - 6장(데이터 타입) (3) | 2024.02.11 |
---|---|
모던자바스크립트 Deep Dive - 5장(표현식과 문) (0) | 2024.02.10 |
Javascript - Web API (1) | 2023.11.21 |
Javascript 이벤트(addEventListener) (0) | 2023.11.18 |
Javascript 이벤트(추가, 삭제, 객체, 옵션, 버블링, 위임) (2) | 2023.09.09 |