티스토리 뷰
자바스크립트하면 꼭 알아야 하는 개념, var let const의 차이점과 스코프에 대해 간단히 정리해보았습니다!
간단하게 말하자면, var는 전역 유효범위, 함수 안에 있다면 functional scope이고, let과 const는 block scope라고 생각하면 간단합니다. 예제를 보고 금방 이해할 수 있었습니다.
// var: 전역 유효범위
// 예제[1]
// if문 안에서 선언한 a 변수는 if문 밖에서도 전역으로 사용됨
if(true){
var a = 1;
}
console.log(a); //1
// 예제[2]
// function scope이므로 함수 안에서 선언한 a 변수는 함수밖에서 전역으로 사용 불가
function test(){
var a = 1;
console.log(a); //1
}
test();
console.log(a); //error
// 예제[3]
// var는 중복 선언이 가능하며 가장 마지막에 할당된 값이 기존의 값을 덮어쓰게 됨
var a = 0;
var a = 1;
console.log(a); //1
// 예제[4]
// var는 호이스팅이 가능함
console.log(a); //undefined
var a = 0;
console.log(a); //0
// 예제[5]
// 함수 안에서 선언되었어도 var가 빠지면 전역 변수로 사용됨
// 함수를 전역으로 사용하는 것은 가능한 피해야 함. 중복으로 사용될 위험이 있음
function test(){
t=1;
}
test();
console.log(t); //1
function test2(){
console.log(t);
}
test2(); //1
// let & const: block scope
// 예제 [1]
// 블록 스코프임으로 if문 안에서 선언된 변수는 괄호 안에서만 사용 가능
let a = 1;
if(true){
let b = 2;
}
console.log(a); //1
console.log(b); //error
// 예제 [2]
// 중복 선언 불가
let a = 0;
let a = 1;
console.log(a); //error
// 예제 [3]
// 호이스팅 불가
console.log(a); //error
let a = 0;
console.log(a); //0
// 예제 [4]
// let은 선언 후 값을 재할당하는 것이 가능하지만 const는 값 재할당 불가
let a = 0;
a = 1;
console.log(a); //1
const b = 0;
b = 1; //error
// 예제 [5]
// 객체 타입 변수 선언에는 const를 사용하는 것이 좋음
// 재할당은 금지되지만, property는 변경이 가능함
const a = {name: 'olly'};
const a = {}; //error
a.name = 'olivia';
console.log(a); //{name: 'olivia'};'JavaScript' 카테고리의 다른 글
| [Javascript] Class (ES6) 개념 및 예제 (0) | 2022.04.26 |
|---|---|
| [Javascript] 동기/비동기와 콜백함수 정리 (0) | 2022.04.26 |
| [Javascript] div 태그 내용을 form으로 전송하기 (0) | 2021.12.22 |
| [Javascript] 자바스크립트(바닐라)에서 요소의 인덱스 구하기 (0) | 2021.12.20 |
| [Javascript] 이중 배열 합치기 (배열 관련 메소드 flat()) (0) | 2021.12.16 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- JavaScript
- curl.cainfo 에러
- 링크 공유 시 썸네일
- input placeholder
- php composer 설치
- php rand()
- 자바스크립트 url 파라미터 추출
- HTML
- fetch get post 전송
- curl.cainfo
- JS url 파라미터
- php 게시판
- JS 시계 기능
- curl ssl 인증서 다운로드
- php mongodb
- AJAX
- 자바스크립트
- curl.cainfo 적용
- 자바스크립트 세션
- 카톡 링크 공유 썸네일
- fetch post 데이터 전송
- react restful API
- react fetch
- 링크 공유 시 정보 수정
- html input
- php mysql 랜덤 숫자
- curl ssl 인증서
- php composer
- JS session
- http 접속 시 https 리다이렉션
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함