Javascript [자바스크립트] 변수 선언과 유효범위

변수 선언과 유효범위

자바스크립트에서 변수는 값과 연관된 이름으로서, 변수를 이용하면 자바스크립트 프로그램에서 데이터를 저장하고 조작할 수 있다.

변수 선언

변수는 var 키워드로 선언한다.

동일한 var 키워드를 이용해 여러 개의 변수를 선언할 수 있으며, 변수를 선언함과 동시에 초기화할 수도 있다. 다음 예제를 보자.

var x;

var y = 10;

var a, b, c;

var i = 10, j = 10, k = 10;   

변수에 초기값을 지정하지 않으면 해당 초기값은 undefined가 된다.

var x;

console.log(x);     //undefined             

자바스크립트에는 명시적인 타입이 없다

자바스크립트는 다른 자바나 C 같은 어어와 달리 명시적인 타입이 없다. 자바스크립트 변수는 어떤 자료형의 값도 담을 수 있으며, 한 변수를 다른 타입의 값으로 할당할 수 있다.

var id = 10;    // number

id = "ten";     // string

console.log(id);    // ten

변수의 전역 유효범위와 지역 유효범위

자바스크립트 변수 유효범위는 변수를 어디에서 접근할 수 있느냐를 가리킨다.

  • 전역 유효범위는 코드 내에서 어디서든 변수에 접근할 수 있음을 의미한다.
  • 지역 유효범위는 함수 내에서 변수를 정의하고 접근할 수 있음을 의미한다.
  • 함수 매개변수도 지역 변수로 간주하며 해당 함수의 본문 내에서 접근할 수 있다.
  • 지역 변수와 전역 변수의 이름이 같을 경우 지역 변수가 우선순위가 높다.

전역 변수와 지역 변수의 예는 다음과 같다.

var name = "global";    // 전역 변수를 선언

function checkscope(){ 

    var name = "local"; // 지역 변수를 선언

    console.log(name);  // 전역 변수가 아닌 지역 변수를 사용

}                                                                      

checkscope();           // 출력 결과: "local"         

var 키워드 없이 변수를 선언하면 자동으로 전역 변수가 된다.

var name = "global";    // 전역 변수를 선언

function checkscope(){ 

    name = "local";     // 전역 변수를 변경

    name2 = "local";    // 암묵적으로 새 전역 변수가 선언됨

}                                                                    

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

checkscope();

console.log(name);      // output: "local"

console.log(name2);     // output: "local"

참고: 모든 변수를 var 키워드로 선언한다.

중첩 함수에서 내부 함수는 그것이 담긴 함수의 변수에 접근할 수 있다.

function changeName(name){          // "name"은 지역 변수다             

    function inner1(){

        name = name + "-inner1";    

        function inner2(){

            name = name + "-inner2";

        }

        inner2();

    }

    inner1();

    return name;

}

console.log(changeName("Hello"));   // Hello-inner1-inner2

자바스크립트에는 블록 유효범위가 없다

다른 자바나 C 같은 언어와 달리 블록({}) 안에서 선언된 변수는 해당 블록이 닫힌 이후에도 접근할 수 있다. 다음 예제를 보자.

{                                     

    var count = 10;

}

console.log(count);     // 10

아울러 반복문 내에서 선언된 변수도 해당 반복문이 끝난 이후에 접근할 수 있다.

for (var i=0; i<11; i++){}              

console.log( i );       // 11

 

[출처] http://codingnuri.com/javascript-tutorial/javascript-variable-declaration-and-scope.html

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
41 Responsive Web ① – 반응형 웹을 위해 개발자가 꼭 알아야 하는 기술들 file 졸리운_곰 2019.02.08 325
40 서버 사이드 렌더링 그리고 클라이언트 사이드 렌더링 file 졸리운_곰 2018.11.02 800
39 무료 디자인소스 홈페이지들을 소개합니다! file 졸리운_곰 2018.02.27 516
38 스토리보드 템플릿 file 졸리운_곰 2017.10.10 625
37 [웹 기획] 화면 설계 용어 - 와이어프레임, 스토리보드, 프로토타입의 차이점 file 졸리운_곰 2017.10.10 1584
36 웹기획 탄탄한 홈페이지 설계방법 (스토리보드 다운로드) file 졸리운_곰 2017.10.10 2062
35 정보설계(IA : Information Architecture) 졸리운_곰 2016.11.20 330
34 정보 설계 — 웹 사이트 기획 file 졸리운_곰 2016.11.20 756
33 웹 서비스 구축 체크리스트 file 졸리운_곰 2016.10.30 608
32 반응형 웹 기획 file 졸리운_곰 2016.10.27 673
31 [UX 컨설팅] 모 전자 서비스 사례 보고서 secret 졸리운_곰 2016.10.09 0
30 [웹 기획] 기획자가 화면설계서(스토리보드)를 만든다구요? 기획자가 무슨 능력을 가지고 있는데요? 졸리운_곰 2016.10.09 484
29 [UX 디자인] UI 설계도에 해당하는 용어들 file 졸리운_곰 2016.10.09 531
28 [UX 디자인 사례] T모 소프트 "BUX컨설팅소개_V.1.0" file 졸리운_곰 2016.10.09 255
27 [UX 디자인] 사용자 경험(UX)과 사용자 경험 디자인(UX Design) - 위키피디아 정의 살펴보기 file 졸리운_곰 2016.10.08 289
26 [UX 디자인] UX 디자인 조직의 구조와 역할 file 졸리운_곰 2016.10.08 481
25 [UX 디자인] UX 디자인이란? - UI, UX, 인터랙션 디자인의 정의 file 졸리운_곰 2016.10.08 487
24 [UX 디자인] UX(User Experience) 란? UX 디자인 관련 다이어그램 Best 14 file 졸리운_곰 2016.10.08 584
23 [UX 디자인] 7단계 인간행위 모형 - 터치 기기 사용의 행위 모형 file 졸리운_곰 2016.10.08 533
22 [UX 디자인] 애플의 디자인 방법 file 졸리운_곰 2016.10.08 631
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED