일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 일상 생각
- react-query 도입후기
- 기술낙서장
- state 사용하기
- 사내 오류 대응
- MSW
- 사내 오류 해결
- 결제페이지
- 더블엔씨
- node.js
- SSR
- 사내 이슈
- no router instance found
- react-query&Next.js
- react-query v5
- ClientSide
- React
- router instance
- 기술 낙서장
- React.JS
- 리액트
- TypeScript
- state 관리
- SW캡스톤디자인
- javascript
- 캡스톤디자인 후기
- Next.js
- react-query
- nextjs
- JS변수
- Today
- Total
코딩을 잘하고 싶은 코린이 동토니
JS 변수 본문
식별자
식별자는 어떤 값을 구별해서 식별할 수 있는 고유한 이름이다.
따라서 변수이름은 식별자라고도 불리며 식별자는 값이 아닌 메모리 주소를 기억하고 있다.
즉 식별자가 기억하고 있는 메모리 주소를 통해 메모리 공간에 저장된 값에 접근하게 된다.
식별자란 용어는 변수 이름에만 국한되는것이 아닌 변수,함수,클래스 등의 이ㅡㄻ은 모두 식별자이다.
변수 선언
변수 선언은 변수를 사용하기위한 선언으로 JS에서는 var, let ,const 를 사용한다.
ES6에서 let과 const가 도입된 이후 var은 잘 사용하지 않는다
let은 값이 변경 가능한 변수
const는 값이 변경 불가능한 상수이며 두가지 모두 블록 레벨 스코프를 지원한다.
변수의 실행시점과 호이스팅
console.log(score); *// undefined*
var score; *// 변수 선언*
일반적인 경우 위의 코드가 ReferenceError(참조 에러)를 발생시킬 것처럼 보이지만
실제로는 undefined를 출력하게된다.
JS에서는 변수선언이 코드가 한줄씩 순차적으로 실행되는 시점,
즉 런타임 시점이 아닌 그 이전단계에서 먼저 변수의 선언이 이루어지기 때문이다.
이처럼 변수 선언문이 코드의 선두로 끌어 올려진 것 처럼 동작하는 특징을 호이스팅이라고 한다.
값의 할당
변수의 선언은 런타임 이전에 실행이 되지만 선언된 변수에 대한 값의 할당은 런타임 시점에 이루어진다.
console.log(score); *// undefined*
var score; *// 변수 선언*
score = 80;
console.log(score);
위의 코드를 실행시켜보게 되면 undefined, 80이 콘솔에 출력된다.
즉 변수의 선언은 런타임 시점 이전에 이미 다 이루어져 있지만
변수 값의 할당은 코드가 순차적으로 실행되어가는 런타임 시점에 이루어지기 때문에
이전에 할당되어있지 않던 log에는 undefined가
값이 할당된 이후의 log에는80이 출력 된다.
'Web > JavaScript' 카테고리의 다른 글
React-Query V5 변경점 정리 (0) | 2024.09.02 |
---|---|
react-query fetch status에 관한 고찰 (2) | 2024.09.02 |
Arrow function 과 일반 function 의 this (0) | 2021.09.30 |