본문 바로가기
개발 수업/WEB

[JavaScript] 자바스크립트 변수

by 오늘 하루s 2023. 6. 26.
728x90
더보기

Day40. 230626

자바스크립트에서 변수선언방법

1) 자동인식

 

2) var 변수명

 - 변수를 선언하거나 변수 선언과 동시에 값을 저장할 수 있다.

 - 값은 지정하지 않으면 변수에 "undefined"값이 들어가 있음.

 - 변수 선언은 한번에 여러개도 가능

 

3) let변수명

 - 선언된 구역에서만 사용할 수 있는 변수 선언

- 선언된 블록범위에서 같은 변수 이름으로 선언하면 에러 발생

 

4) const 변수명

- 한번 값이 저장되면 값을 변경할 수 없는 변수 선언

- 선언할 때 초기값을 지정해야함.

 

변수끌어올림(호이스팅,hoisting)

- 변수 선언이 어느 위치에 있든 맨 처음 선언을 미리 해줌.

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h2>var_let_const</h2>
	<pre>javascript에서 변수선언방법 4가지
	자동인식
	var 변수명
	let 변수명
	const 변수명</pre>
	
	<script>
	 	//var x; //변수선언
	 	//console.log(x); //undefined 변수선언 후 초기값을 부여안하고 사용시 undefined
	
		 console.log(a); //undefined
		 console.log(b); //Uncaught ReferenceError: Cannot access 'b' before initialization
		 console.log(c); //Uncaught ReferenceError: Cannot access 'c' before initialization
		  
	 	//var,let,const를 사용하여 변수 선언 및 초기화
		  var a = 20;
		  let b = 200;
		  const c = 2000;
		  
		// var  a=30; //변수를 재선언해도 된다.->문제발생소지
		// console.log(a);
		
		let b = 300; //Uncaught SyntaxError: Identifier 'b' has already
		console.log(b);
		 
	  //var롤 선언한 변수는 호이스팅(hoisting)에 의해서 scope의 최상단으로 끌어올려진다.
	  //변수를 참조할 수 있게 된다. 그런데 위의 코드에서는 호이스팅에 의해 끌어올려지고
	  //변수가 사용되고 변수값 할당이 이루어지면서 undefined되었다.
	  
	  //let로 선언한 변수는  호이스팅(hoisting)에 의해서  발생은 하지만
	  //변수 선언 전에 변수가 사용되면 ReferenceError가 발생된다.
	  
	  
	  
	 </script>
</body>
</html>
728x90