일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파이썬 딕셔너리
- 내일배움캠프 최종 프로젝트
- 타입스크립트 props
- React Hooks
- 코딩테스트
- 내일배움캠프 프로젝트
- JavaScript
- 리액트
- 타입스크립트 리액트
- 파이썬 slice
- typeScript
- 리액트 훅
- 파이썬 enumerate
- 내배캠 프로젝트
- 자바스크립트
- useState
- 파이썬 replace
- 파이썬 for
- 리액트 공식문서
- 프로그래머스
- 리액트 프로젝트
- useEffect
- REACT
- tanstack query
- Next 팀 프로젝트
- 한글 공부 사이트
- 파이썬 for in
- 파이썬 반복문
- 타입스크립트
- 내일배움캠프
- Today
- Total
sohyeon kim
[JS] 변수 var, let, const 본문
var와 let은 크게 다르지 않지만 차이점은..
var 한 번 선언된 변수명을 다시 선언해도 Error가 뜨지 않는다.
let 한 번 선언한 변수명은 다시 사용할 수 없다.
var name = "aoto";
console.log(name); // aoto
var name = "yae";
console.log(name); // yae
let name = "aoto";
console.log(name); // aoto
let name = "yae";
console.log(name); // Error!
💡 var 호이스팅 되기 때문에 선언 전에 사용해도 작동한다.
이 때 선언만 호이스팅 되고 값은 호이스팅 되지 않는다.
console.log(name); // undefined
var name = "aoto";
// 호이스팅 되기 때문에 아래처럼 작동함
var name;
console.log(name);
name = "aoto";
💡 let Temporal Dead Zone (선언 전에 작성된 영역. 작동 XXX)
console.log(name); // ReferenceError, 이 부분이 TDZ
let name = "aoto";
let age = 30;
function showAge() {
console.log(age); // 이 부분이 TDZ
let age = 20; // 여기서 다시 age를 선언하지 않았다면 정상 작동함
}
showAge();
변수의 생성과정
1. 선언 2. 초기화 3. 할당
var
1. 선언 + 초기화 : 동시에 이뤄짐. 값을 할당하지 않아도 Error가 뜨지 않고 undefined 출력
2. 할당
let
1. 선언 : 호이스팅 될 때 이뤄짐
2. 초기화 : 값이 할당 될 때 이뤄짐
3. 할당
💡 const
1. 선언 + 초기화 + 할당 : 셋이 같이 이뤄짐
var age;
age = 20;
let name;
name = "aoto";
const gender // Error
gender = "femaie"
var : 함수 스코프 function-scoped
함수 내에서 선언된 변수만 그 지역변수가 됨
let, const : 블록 스코프 block-scoped
모든 코드블록 내에서 선언된 변수는 코드블록 내에서만 유효하며 외부에선 접근할 수 없다.
코드블록 : 함수, if문, for문, while문, try/catc문 등
const age = 20;
if (age > 19) {
var txt = "성인";
}
console.log(txt); // "성인"
// if문 내에서 변수를 선언했지만 밖에서 사용 가능
// let, const는 if문 내에서만 사용 가능
function add(num1, num2) {
var result = num1 + num2;
}
add(2, 3);
console.log(result); // Uncaught ReferenceError: result is not defined
// 하지만 var가 함수 내에서 선언됐다면 그 안에서만 사용 가능
🔗 https://youtu.be/ocGc-AmWSnQ?si=uU8_U_Tv0k6fxpf7
➕ let, const 작성 방식
둘을 구분하기 위해 let은 CamelCase로, const는 대문자와 _로 작성한다
let myName = 'aoto';
const MY_NAME = 'yae'
codeit 프로그래밍 핵심 개념 in JavaScript 14. 상수
🔗 https://www.codeit.kr/topics/core-concept-of-javascript-programming
'JavaScript' 카테고리의 다른 글
[JS] Object methods & Computed property 객체 메소드와 계산된 프로퍼티 (0) | 2023.12.13 |
---|---|
[JS] 생성자 함수 (0) | 2023.12.13 |
[JS] class 상속 extends (0) | 2023.09.16 |
[JS] Object Property & Method 객체 프로퍼티와 메소드 (0) | 2023.09.15 |
[JS] parameter & argument 차이 (0) | 2023.09.05 |