SW/JavaScript

Data type & 변수 선언 & 식별자

맛대 2022. 4. 30. 15:01

문법 기초

변수와 식별자

식별자

  • 식별자(identifier) : 변수를 구분할 수 있는 변수명
  • $ 또는 _로 시작
  • 대소문자 구분, 클래스명 외에는 소문자로 시작

식별자 작성 스타일

  • 카멜 케이스(camelCase)
    • 변수, 객체, 함수에 사용
  • 파스칼 케이스(PascalCase)
    • 클래스, 생성자에 사용
  • 대문자 스네이크 케이스(SNAKE_CASE)
    • 상수에 사용

변수 선언

let

  • 재할당 할 예정인 변수 선언 시 사용
  • 변수 재선언 불가능
  • 블록 스코프
let ljm                    // 선언
console.log(ljm)        // undefined

ljm = 0850                // 할당
console.log(ljm)        // 850
ljm = 0                    // 재할당

let ljm                    // 재선언, Error 발생

let jstest = 123        // 선언+할당
블록 스코프
  • if, for, 함수 등의 중괄호 내부
  • 블록 스코프를 가지는 변수는 블록 바깥에서 접근이 불가(블록 내부,외부가 단절)

const

  • 재할당 할 예정이 없는 변수 선언 시 사용
  • 변수 재선언 불가능
  • 블록 스코프

var

  • 재선언, 재할당 모두 가능
  • 예전(ES6이전)에 변수 선언시 사용하던 키워드
  • 호이스팅되는 특성으로 인해 사용 추천X
    • 변수를 선언 이전에 참조가 되는 현상
    • 변수 선언 이전에 호출시 undefined 반환
  • 함수 스코프
    • 함수 바깥에서 함수 내부의 변수에 접근 불가

데이터 타입

원시 타입(Primitive type)

  • 객체가 아닌 기본 타입
  • 변수에 해당 타입의 값이 담김
  • Number, String, Boolean, undefined, null, symboll

참조 타입(Reference type)

  • 객체 타입의 자료형
  • 변수에 해당 객체의 참조 값(주소)가 담김
  • 함수, 배열, 객체

원시 타입

Boolean

  • true, false로 표현(대문자x)
  • 논리적 참 거짓을 나타냄
    • 조건문, 반복문에서 데이터 타입이 Boolean으로 자동 변환됨
  • object는 항상 참
    • python에서는 빈 리스트([])는 거짓이지만, JS에선 참

Number

  • 정수,실수 구분 없는 하나의 숫자 타입
  • 부동소수점 형식
  • Infinity, -Infinity, NaN(Not-A-Number) 존재
    • NaN : ljm / 100 과 같이 계산이 불가능한 경우 반환값
  • Boolean 변환시 0,-0, NaN은 거짓

String

  • 16비트 유니코드 문자의 집합
  • ',"둘 다 사용 가능
  • 템플릿 리터럴(Template Literal)
    • python의 f-string
    • `(backtick)으로 표현
    • const ljm = 'dataType'
      const name = `${ljm}`

undefined

  • 변수의 값이 없음을 나타냄
  • 변수 선언 이후 값을 할당하지 않을경우 자동 할당
  • Boolean 변환시 항상 거짓

null

  • 변수의 값이 없음을 의도적으로 표현할 떄 사용
  • typeof 연산자 사용시 결과가 object로 표현됨
    • typeof undefined // undefined
  • Boolean 변환시 항상 거짓

'SW > JavaScript' 카테고리의 다른 글

DOM 조작 & Event  (0) 2022.04.30
함수  (0) 2022.04.30
String & Array & Objects  (0) 2022.04.30
연산자 & 조건문 & 반복문  (0) 2022.04.30
intro  (0) 2022.04.30