ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JavaScript - 변수, 자료형, 변수 범위(Variable Scope)
    JavaScript 2022. 2. 20. 00:42
    728x90
    반응형

     

     

    변수, 자료형, 변수 범위(Variable Scope)

     

     

     

     

    변수

     

     

    변수 선언

     

    • 자바 변수 선언은 var, let, const를 사용할 수 있다.
    • var
           - 이미 선언된 변수명으로 재선언 해도 오류가 나지 않는다
           - 유연하게 사용할 수 있지만 코드량이 많아지면 어디에 어떻게 사용될지 파악하기 힘들다.
      var name = 'hi, script'
      console.log(name) // hi, script
      
      var name = 'hi, javascript'
      console.log(name) // hi, javascript​
    • let
           - var의 단점을 보완하기 위해 추가된 변수 선언 방식
           - 이미 선언된 변수명으로 재선언 시 에러 메시지 출력
           - 즉, 변수 재선언이 불가능
      let name = 'hi, script'
      console.log(name) // hi, script
      
      let name = 'hi, javascript'
      console.log(name) // Uncaught SyntaxError: Identifier 'name' has already been declared​
    • const
           - var의 단점을 보완하기 위해 추가된 변수 선언 방식
           - 이미 선언된 변수명으로 재선언 시 에러 메시지 출력
           - 이미 할당된 변수에 재할당 시 에러 메시지 출력
           - 즉, 변수 재선언, 변수 재할당 모두 불가능
           - 선언과 동시에 할당해야 한다.
      const name = 'hi, script'
      console.log(name) // hi, script
      
      const name = 'hi, javascript'
      console.log(name) 
      // Uncaught SyntaxError: Identifier 'name' has already been declared
      
      name = 'hi, javascript'
      console.log(name) 
      //Uncaught TypeError: Assignment to constant variable.​

     

    변수 명명 규칙

     

    • 문자, 숫자, '$', '_' 사용 가능
    • 첫 글자는 숫자가 올 수 없다
    • 예약어 사용 불가
    • 카멜 표기법 사용
            - 첫 글자를 대문자로 적되, 맨 앞에 오는 글자는 소문자로 표기하는 것
            -
       표기한 모습이 낙타의 등과 같다고 하여 카멜 표기법이라고 부른다

     

    자바스크립트의 자료형

     

     자바스크립트는 느슨한 타입(loosely typed) 언어, 혹은 동적 (dynamic) 언어이다. 변수의 타입을 미리 선언할 필요가 없으며, 타입은 프로그램이 처리되는 과정에서 자동으로 파악이 되기 때문에 같은 변수에 여러 타입의 값을 넣을 수 있다.

     

     

    원시 자료형(primitive type)

     

    • 원시 자료형이 할당될 때에는 변수에 값(value) 자체가 담긴다.
           - 원시 자료형 : number, string, boolean, null, undefined
    • number : 정수 및 실수, Infinity, NaN
    • string : 문자열은 따옴표로 묶는다.
    • boolean : 논리 값
    • null : 존재하지 않는 값, 알 수 없는 값, 비어 있는 값
    • undefined : 값이 할당되지 않은 상태

     

    참조 자료형(reference type)

     

    • 원시 자료형이 아닌 것들을 참조 자료형이라고 한다.
    • 참조 자료형이 할당 될 때는 보관함의 주소(reference)가 담긴다.
    • 참조 자료형의 종류 : Array, Object, function
    • Array : 배열
    • Object : 객체

     

     

    변수 범위(Variable Scope)

     ES5까지는 "전역 범위"와 "함수 범위"라는 두 가지 유형의 범위만 있었지만 ES6에서는 "블록 범위" 변수(및 상수)를 제공한다.

     

     

    Scope

     

    • 블록 범위 : let에 적용이 되지만 var에는 적용되지 않고 블록 외부 변수도 다시 선언이 된다.
    • loop 블록 블록 범위 : let에 적용이 되지만 var에는 적용되지 않고 블록 외부 변수도 다시 선언이 된다.

     

     

    728x90
    반응형

    댓글

Designed by Tistory.