var :
전역 함수 및 지역 함수로 사용 가능하다. 즉 블록 밖에서 선언 한 것과 안에서 선언 한 것의 차이가 없다.
let :
블록범위 변수로서, 블록 안에서 선언하면 해당 블록 내에서만 사용이 가능하다.
const :
상수 선언 할 때 사용 한다. const는 선언 할때만 값을 넣을 수 있고 그 이외에 값의 변경은 불가능하다.
세 가지 변수 선언법의 차이점에 대해서 총정리하자면:
- var 선언은 전역 범위 또는 함수 범위이며, let과 const는 블록 범위이다.
- var 변수는 범위 내에서 업데이트 및 재선언할 수 있다. let 변수는 업데이트할 수 있지만, 재선언은 할 수 없다. const 변수는 업데이트와 재선언 둘 다 불가능하다.
- 세 가지 모두 최상위로 호이스팅(코드가 실행 되기 전, 변수와 함수가 최상단으로 끌어 올려 진 것 ) 하지만 var 변수만 undefined(정의되지 않음)으로 초기화되고 let과 const 변수는 초기화되지 않는다.
- var와 let은 초기화하지 않은 상태에서 선언할 수 있지만, const는 선언 중에 초기화해야한다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script>
var a = 1;
let b = 2;
const max = 10;
alert("max : " + max);
function f1() {
alert("f1 함수 안 a : " + a);
alert("f1 함수 안 b : " + b);
//함수 안에서 선언한 지역변수
var x = 3;
let y = 4;
alert("f1 함수 안 x : " + x);
alert("f1 함수 안 y : " + y);
}
function f2() {
alert("f2 함수 안 a : " + a);
alert("f2 함수 안 b : " + b);
// alert ("f2 함수 안 x : " + x);
// alert ("f2 함수 안 y : " + y);
kkk = 10;
//선언 안하면 지역 변수로만 사용 한다
{
var v1 = 10;
alert("f2 함수 안 v1 :" + v1);
}
alert("f2 함수 밖 v1 :" + v1);
{
let y2 = 20;
alert("f2 함수 안 y2 :" + y2);
}
alert("f2 함수 밖 y2 :" + y2);
//이거는 정의 되지 않았다고 오류가 난다.
//왜냐하면 let은 블럭 안에서만 사용 할 수 있기 때문에
}
alert("함수 밖 a : " + a);
alert("함수 밖 b : " + b);
f1();
f2();
alert("kkk : " + kkk);
</script>
</head>
<body>
</body>
</html>
'Front > javascript' 카테고리의 다른 글
[Javascript] 웹 페이지의 근육 심기 - value값 가져오기 (0) | 2023.03.25 |
---|---|
[Javascript] 웹 페이지의 근육 심기 - 구구단 테이블 만들기 (0) | 2023.03.24 |
[Javascript] 웹 페이지의 근육 심기 - 대화 상자(dialog box) (0) | 2023.03.24 |
[Javascript] 웹 페이지의 근육 심기 - 함수(function) (0) | 2023.03.24 |
[Javascript] 웹 페이지의 근육 심기 - 자바스크립트 (0) | 2023.03.22 |