본문 바로가기

JavaScript

15장 - var를 사용한 변수의 특징

1. 지역 변수와 전역 변수 

 

 - 지역변수 (로컬 변수)

  : 한 함수 안에서만 사용할 수 있는 변수 

  : var 변수이름

 

- 전역변수(글로벌 변수)

  : 스크립트 소스 전체에서 사용할 수 있는 변수 

  : 함수 밖에서 선언

  : 함수 안에서 var예약어 없이 선언

 

 - var예약어를 사용한 지역변수와 전역변수 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>var 예약어를 사용한 지역변수와 전역 변수 </title>
</head>
<body>
  <script>
   function addNumber() {
    var sum=10+20; //지역 변수 sum 선언
    multi=10*20; //전역 변수 multi 선언
   }

   addNumber();
   console.log(multi); //전역 변수 사용
  </script>
</body>
</html>

 

2. var와 호이스팅


- 호이스팅 : 변수의 선언과 할당을 분리해서 선언 부분을 스코프에 가장 위쪽으로 끌어올리는 식으로 해석

- 자바스크립트 해석기는 함수 소스를 훑어보면서 var을 사용한 변수는 따로 기억해둠  =>마치 선언한 것과 같은 효과 

 

- 변수와 호이스팅

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>변수와 호이스팅</title>
</head>
<body>
  <script>
   var x=10;

   function displayNumber() {
    console.log("x is"+x);
    console.log("y is"+y);
    var y=20;
   }
   displayNumber();
  </script>
</body>
</html>

(예상)y변숫값 12 (실제)undefiend why? 호이스팅

 실제 코드 

var x=10;

   function displayNumber() {
    console.log("x is"+x);
    console.log("y is"+y);
    var y=20;
   }
   displayNumber();

자바스크립트 해석기가 인식하는 코드 

var x=10;

   function displayNumber() {
    var y;
    console.log("x is"+x);
    console.log("y is"+y);
    y=20;
   }
   displayNumber();

 

3. 변수의 재선언과 재할당

 - var를 사용한 변수는 호이스팅 외에도 재선언과 재할당 가능

 

 - var 예약어를 사용한 변수의 재할당과 재선언

 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>var 예약어를 사용한 변수의 재할당과 재선언</title>
</head>
<body>
  <script>
   function addNumber(num1, num2) {
    return num1+num2; //2개의 수 더하기
   }
   var sum=addNumber(10,20); //sum 변수 선언, 함수 호출
   console.log(sum);
   sum=50; //sum 변수 재할당
   console.log(sum);
   var sum=100; //sum 변수 재선언
   console.log(sum);
  </script>
</body>
</html>

'JavaScript' 카테고리의 다른 글

15장 - 재사용할 수 있는 함수 만들기  (0) 2023.04.07
15장 - let과 const  (0) 2023.04.07
15장 -함수의 선언과 호출  (0) 2023.04.06
14장 마무리 문제 2  (0) 2023.04.06
14장 마무리 문제 1  (0) 2023.04.06