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]
  1.   기술공통
  2.   기초과학
  3.   파동/광학/음향
  4.   방송/멀티미디어/정보이론
  5.   전자/전기/제어
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
      1.   프로그래밍 언어론
      2.   객체지향
      3.   자료구조
      4.   알고리즘
      5.   자료표현(알파벳/코드)
      6.   시스템 프로그래밍
      7.   프로그래밍언어 종류
            1. 프로그래밍 언어
            2. 기계어,어셈블리언어
        1.   C/C++
        2.   자바(Java)
        3.   자바스크립트
              1. JavaScript
              2. JS 객체
              3. JS 변수,타입
              4. JS 함수
              5. JS 배열
              6. JS 연산자
          1.   JS 이벤트
          2.   JS 활용
          3.   jQuery
        4.   PHP
        5.   (기타 언어)
      8.   프로그래밍 기타일반
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   기계/재료/공업일반
  9.   표준/계측/품질
  10.   기술경영

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