개발/JavaScript

JavaScirpt] 자바스크립트 뿌시기 (핵심 개념, 데이터 타입과 연산자)

펭귀니 :) 2020. 12. 28. 19:35

인사이드 자바스크립트를 읽고 JavaScript를 이해해보자.
JavaScript라는 프로토타입 기반의 객체지향 언어를 이해해보자.
그전에 프로토타입이 뭔지 이해해보자.
일단 회사 일을 해야하기 때문에 ES5 문법을 기준으로 보자.

🎉 JavaScript의 핵심 개념


객체

기본 데이터 타입인 boolean, number, string
특별한 값인 null, undefined
그 외의 JavaScript의 거의 모든 타입은 객체다.

함수

함수도 객체다. 그것도 일급 객체다.

프로토타입

모든 객체는 숨겨진 링크인 프로토타입을 가진다. ❓

실행 컨텍스트와 클로저

자바스크립트는 자신만의 독특한 과정으로 실행 컨텍스트를 만들고 그 안에서 실행이 이루어진다. ❓

자바스크립트는

클래스를 지원하지는 않지만 객체지향 프로그래밍이 가능하다. (클로저를 사용해서 상속, 캡슐화, 정보은닉 등의 개념 소화 가능)
함수형 프로그래밍이 가능하다. => 높은 수준의 모듈화가 가능하다.

🎉 JavaScript 데이터 타입과 연산자


데이터 타입

  1. 기본 타입
    • 숫자(Number)
    • 문자(String)
    • 불린값(Boolean)
    • undefined
    • null
  2. 참조 타입
    • 객체 (Object)
      • 배열(Array)
      • 함수(Function)
      • 정규표현식

기본 타입

  • 느슨한 타입 체크 언어이다.

    var로 변수를 선언하고, var에 어떤 형태의 데이터를 저장하느냐에 따라 변수의 타입이 결정된다.

  • var numberType = 10; 
    console.log(typeof numberType); // print >> number
    
    var stringType = 'single quote, double quote'; 
    console.log(typeof stringType); // print >> string 
    
    var booleanType = false; 
    console.log(typeof booleanType); // print >> boolean 
    
    var empty; 
    console.log(typeof empty); // print >> undefined 
    
    var nullType = null; 
    console.log(typeof nullType); // print >> object

숫자

  • JavaScript는 모든 숫자를 64비트 부동 소수점 형태로 저장

    var num = 5 / 2;
    console.log(num); // print >> 2.5

문자열

  • ' 혹은 "로 생성

  • 한번 정의된 문자열은 변하지 않는다.

    var name = 'yeju';
    console.log(name[0], name[2]); // print >> yj
    
    name[0] = 'Y';
    console.log(name); // print >> yeju // 읽기만 가능하지 수정은 불가능하다.

불린값

  • true와 false 값을 가지는 boolean type을 가진다.

null과 undefined

  • 모두 '값이 비어있음'을 나타낸다.
  • undefined
    • 값이 할당되지 않는 변수는 undefined 타입이다.
    • 변수 자체의 값도 undefined다.
    • 타입이자 값이다.
  • null
    • 개발자가 명시적으로 값이 비어있음을 나타내는데 사용
    • typeof 결과가 object이다.
    • null 타입 변수인지 확인시 typeof 말고 ===을 사용해야한다.

참조 타입(객체 타입)

  • 위에 설명된 기본 타입 제외한 모든 값은 객체다.
  • 객체란? 이름(key) : 값(value) 형태의 프로퍼티를 저장하는 컨테이너 (해시 자료구조와 유사하다.)
  • 프로퍼티의 기본 타입의 값을 포함하거나, 다른 객체를 가리킬 수 있다.

📖출처


송형주, 고현준 지음, 『인사이드 자바스크립트』, 한빛미디어(2014)