morijwana
수로그
morijwana
전체 방문자
오늘
어제
  • 분류 전체보기
    • 강의노트
    • Machine Learning
      • Pandas
      • NLP
    • Computer Science
      • Linux
      • TIL
    • Development
      • React
      • Swift
      • Javascript
    • 스터디 기록
      • Clean Code
      • 구글 BERT의 정석
      • 개발도서
      • 기타
    • Problem Solving
      • Baekjoon
      • ICPC Sinchon
    • 끄적
      • 끄적끄적
      • 요리왕

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • GDSC Sookmyung
  • Bert
  • 개발도서
  • gdsc
  • cs224n
  • word2vec
  • 회고
  • 프레임워크없는프론트엔드개발
  • Python
  • Solution Challenge
  • 민트하임스터디
  • 데이터사이언스
  • 프로그래밍언어론
  • nlp
  • 구글BERT의정석
  • Pandas
  • 자연어처리
  • 백준
  • ML
  • 구부정스터디

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
morijwana
Development/Javascript

[2021 겨울 민트하임 스터디] You don't know JS - Chapter 1: 타입

Development/Javascript

[2021 겨울 민트하임 스터디] You don't know JS - Chapter 1: 타입

2021. 1. 24. 21:29

Chapter 1: 타입

2021.1.16(토)

책: You don't know JS

자바스크립트에도 타입이 있다

  • '타입': 자바스크립트 엔진, 개발자 모두에게 어떤 값을 다른 값과 분별할 수 있는, 고유한 내부 특성의 집합
  • 42(number) !== "42"(string)
  • 타입에 따라 사용할 수 있는 함수와 연산, 가공 방법이 다름

자바스크립트의 내장 타입

  • 자바스크립트의 7가지 내장 타입
    • null
    • undefined
    • boolean
    • number
    • string
    • object
    • symbol(ES6부터 추가됨)

object를 제외한 6가지 타입을 원시 타입이라고 한다.

값의 타입은 typeof 연산자를 통해 알 수 있지만, 그 반환값이 항상 7가지 내장 타입 중 하나인 것은 아니다.

  • typeof 반환값에 대한 예외
    • null
      • null을 제외한 모든 내장 타입은 자신의 명칭과 동일한 문자열을 반환한다.
      • 신기하게도 null 타입에 대한 반환값은 object 이다.
      • 해당 값이 null인지 확인하기 위해서는 아래와 같이 조건이 하나 더 필요하다.
      var a = null;
      (typeof a) // object
      (!a && typeof a === "object"); // true
    • function
      • 내장 타입이 아닌 object 의 하위 타입이다.
      • 함수는 '호출 가능한 객체'이기 때문이다.
      typeof function a() {/* ... */} === "function"; // true

변수에는 타입이 없다

변수에 typeof 연산자를 대어보는 것 === "이 변수에 들어있는 값의 타입은 무엇이니?" !== "이 변수의 타입은 무엇이니?"

not defined !== 'undefined'

var a;
a; // undefined
b; // ReferenceError: b is not defined

typeof a; // "undefined"
typeof b; // "undefined" -> 에러도 안 뱉는다??

전역변수의 존재를 체크하는 3가지 방법

  1. 바로 위 코드를 통해서 알아본 typeof undefined의 애매모호함(?) 이용하기(추천!)굳이 전역변수가 아니어도 변수가 유효한지 확인하고 싶을 때 사용하면 된다.
  2. if (typeof VALUE !== "undefined") { ... } // 선언되지 않은 경우, 값이 없는 경우 둘 다 걸러냄
  1. 전역 변수가 전역 객체(브라우저의 경우 window)의 프로퍼티라는 점 이용하기(비추천)서버에서 실행되는 node.js같은 경우는 전역 객체가 window가 아니므로 사용에 주의해야 한다.
  2. if (window.VALUE) { ... }
  1. 의존성 주입위 코드처럼 명시적으로 의존 관계를 전달할 수도 있다.
  2. function foo(bar) { var helper = bar || function () { /* bar가 없을 때 실행될 함수 */ }; var val = helper(); // ... }
저작자표시 (새창열림)

'Development > Javascript' 카테고리의 다른 글

[2021 겨울 민트하임 스터디] You don't know JS - Chapter 4: 강제변환(1)  (2) 2021.02.07
[2021 겨울 민트하임 스터디] You don't know JS - Chapter 3: 네이티브  (6) 2021.02.04
[2021 겨울 민트하임 스터디] You don't know JS - Chapter 2: 값  (1) 2021.01.24
  • 자바스크립트에도 타입이 있다
  • 자바스크립트의 내장 타입
  • 변수에는 타입이 없다
  • not defined !== 'undefined'
  • 전역변수의 존재를 체크하는 3가지 방법
'Development/Javascript' 카테고리의 다른 글
  • [2021 겨울 민트하임 스터디] You don't know JS - Chapter 4: 강제변환(1)
  • [2021 겨울 민트하임 스터디] You don't know JS - Chapter 3: 네이티브
  • [2021 겨울 민트하임 스터디] You don't know JS - Chapter 2: 값
morijwana
morijwana
행복한 휴학생의 devlog

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.