Javascript Type, Javascript Variable   자바스크립트 타입, 자바스크립트 변수

(2017-11-11)

변수

1. 자바스크립트 변수

  ㅇ 명시적인 변수 선언은, 
     - `var` 라는 예약어 하나로 가능

  ㅇ 변수명은, 
     - `영문자, $, _` 만으로 시작해야 함
     - 대소문자 구분
     - 다만, 각 변수가 유일한 이름 만 있으면 됨


2. 자바스크립트 변수 타입자바스크립트 언어 사양 상, 자바스크립트 변수에는 명시적인 타입이 없음
     - 자바 언어,C 언어의 int,double 등과는 달리,
        . 변수를 미리 규정하는 `정적 타입`이 없고, 
        . `동적 타입`이라고해서 실행 도중에 그때그때 정해짐 (즉, 자동 형변환 됨)

  ㅇ 자바스크립트 변수 구분 
     * 명시적인 타입 구분 대신에 개념적으로 다음과 같이 구분을 함 (느슨한 타입)
     - 기본 타입/원시 타입 (primitive type,built-in type)
        . 종류 : 문자열 타입,숫자 타입,불리언 타입,null 타입,undefined 타입 5개 정도
           .. undefined 타입 : 변수선언 만 되고 값이 주어지지 않은 경우
           .. null 타입      : 선언변수가 null 값(값을 정할 수 없음, 0/0 등)으로 된 것
        . 특징 : 고정 크기를 가지며, 스택 메모리에 저장됨

     - 객체 타입 (object type) 또는 참조 타입 (reference type)
        . 특징 : 동적 바인딩되므로 실행 중에도 그 값이 변할 수 있음
        . 종류 : 배열, 객체, 함수


3. 자바스크립트 변수 타입 특징자바스크립트 변수에는 엄격한 타입 구분이 없음 (느슨한 타입)
     - 다만, 각 변수가 유일한 이름 만 있으면 됨
     - 즉, 자바스크립트 변수는 특정 시간에 특정 값을 가리키는 이름 자체일 뿐,
        . 변수 값과 데이터 타입은 실행 중에 얼마든지 바뀔 수 있음
        . 동적 바인딩으로 개체 참조(연관,association)가 실시간으로 이루어짐

  ㅇ 변수에 타입을 규정하는 특별한 구문이 없음
     - var 이라는 변수 선언 예약어 하나로 가능
        . 즉, 변수 선언자료형(Data Type)이 미리 주어지지 않음 (변수 자료형 미선언)
        . 단, var 연산자지역 변수로써 만 정의함을 의미

  ㅇ 변수 타입(Data Type) 검사 등이 엄격하지 않음
     - 변수에 임의 타입의 값을 대입 가능 
     - 변수가 임의 타입의 객체를 참조할 수도 있음
     - 사용 전에 반드시 변수 선언할 필요도 없음
   

4. 자바스크립트 타입 판단하기 例문자열 타입       : 例) typeof unkownVariable => `string`
  ㅇ 숫자 타입         : 例) typeof unkownVariable => `number`
     - 특수한 기호 例) typeof 0/0 => NaN (Not-a-Number) : 숫자가 아니거나, 계산 불능
  ㅇ 불리언 타입       : 例) typeof unkownVariable => `boolean`
     - 표현식 평가 결과 값이 예약어인 true,false 중 하나로 평가됨
     - 한편, 표현식 자체가 다음과 같을 때,
        . 빈 문자열,0(제로),NaN,null,undefined 일 때, => false 로 평가됨
        . 그 이외의 것일 때, => true 로 평가됨
  ㅇ undefined 타입    : 例) typeof unkownVariable => `undefined`
     - 선언 만 하고, 어떤 값도 대입(변수 초기화)하지 않은 경우
     - 한편, null 값은 의미 상 undefined와 같지만, object 타입으로 판정 함

  ㅇ 객체 타입 : 例) typeof unkownVariable => `object`
     - 변수가 `null`, `배열`, `객체` 일 때
        . 한편, null은 빈 객체를 참조하는 특별한 값임
        . ☞ 자바스크립트 객체 참조
  ㅇ 함수 타입   : 例) typeof unkownVariable => `function`
     - 자바스크립트 함수는 그 자신이 객체이며, 다른 객체를 생성할 수 도 있는 특별한 객체
5. 자바스크립트 형 변환 例)

  ㅇ 암시적 형 변환
     - `+` 연산자        : 피 연산자들을 문자열형변환   (수치 → 문자열)
     - `-`,`*` 연산자    : 피 연산자들을 수치로 형변환     (문자열 → 수치)
     - `+` 단항 연산자   : 피 연산자를 수치로 형변환
     - `!` 단항 연산자   : 피 연산자를 Boolean으로 형변환하고, 부정(negate) 연산을 함
     - `==` 비교 연산자  : 우선, 형변환을 해보고, 그 다음에 비교 과정을 수행함
        . 단, 기본 타입의 경우에는 저장된 값에 대해 형변환 후 비교를 수행하지만,
              참조 타입의 경우에는 저장된 값이 주소이므로, 비교 수행이 별 의미없음
     - `===` 비교 연산자 : 형변환을 수행하지 않고, 엄격한 비교 과정을 수행함

  ㅇ 암묵적인 형변환으로 false로 간주되는 값들
     - 빈 문자열 (''),  0,  NaN,  null,  undefinded  =>  false
     - 즉, 조건문이나, Boolean() 함수를 쓰면 그 결과는 false로 출력

  ㅇ 대부분, 암시적인 자동 형 변환을 하지만, 때때로 명시적인 형 변환을 하려면,
     - 주로, Boolean(),Number(),String(),Object() 함수를 많이 이용함

  ㅇ 수치형으로 형변환 
     - Number()
     - 문자열정수형변환 : parseInt()
     - 문자열실수형변환 : parseFloat()
     - `-`,`*` 연산자


[자바스크립트] 1. JavaScript 2. JS 객체 3. JS 변수,타입 4. JS 함수 5. JS 배열 6. JS 연산자
[JS 이벤트] [JS 활용] [jQuery]

 
        최근수정     모바일웹     참고문헌