Ch_4_JS(1)

gyeol2678·2022년 4월 22일

Summary

  • 자료형(원시형, 참조형)
  • 형 변환
  • Falsy Data
  • 변수(const, let, var)와 호이스팅

Notes

1. 자료형 구분

원시형

  • String (문자)
  • Number (숫자)
  • Boolean (참/거짓)
  • Null (명시적 빈 값)
  • Undefined (암시적 빈 값)
  • Symbol (유일한 식별자(ID). 데이터 이름을 만들 때 사용)
  • Bigint (큰 정수)

참조형

  • Array (배열)
  • Object (객체)
  • Function (함수)

NaN (Not a Number)

숫자 데이터지만 숫자로 표기가 불가한 데이터.
예를 들어 숫자와 undefined를 곱하면 NaN이 나오는데,
숫자와 다른 데이터를 연산 했을 때 보게 된다.

Undifined & Null

  • Undifined
    암시적으로 비어있는 값. 값이 할당되지 않은 상태.
  • Null
    명시적으로 비어있는 값. 비어있음을 표시하기 위해 직접 넣어주는 값.

2. 형(Type) 변환과 일치연산자

===

메모리주소로 비교해 일치 여부를 확인한다.
원시형은 생긴게 같으면 메모리주소도 같지만,
참조형은 생긴게 같아도 메모리주소가 다를 수 있다!

const a = {};
const b = {};
console.log(a === b);	// false, 참조형이기 때문

3. Falsy Data

  • if (false)
  • if (null)
  • if (undefined)
  • if (0)
  • if (-0)
  • if (NaN)
  • if (0n)
  • if ('')
// 주의!!
if ('')		// 완전한 공백
if (' ')	// truthy, 공백 문자는 비어있는 것이 아니다!

4. 자료형 확인

typeof 데이터

Null과 Array는 typeof로 자료형을 정확히 알아낼 수 없다!!

typeof null	// object
typeof []	// object

데이터.constructor

Null과 Undefined 확인 불가.

console.log([].constructor === Array)	// true

Object.prototype.toString.call(데이터)

console.log(Object.prototype.toString.call())

5. 변수

const

  • 유효 범위: 블록 레벨
  • 재할당: X
  • 중복 선언: X
  • 호이스팅: X

let

  • 유효범위: 블록 레벨
  • 재할당: O
  • 중복 선언: X
  • 호이스팅: X

var

  • 유효범위: 함수 레벨
  • 재할당: O
  • 중복 선언: O
  • 호이스팅: O

6. Hoisting

선언부가 유효범위의 최상위로 끌어올려지는 현상.
함수 표현은 호이스팅이 일어나지 않는다.

함수의 선언과 표현

함수란 기본적으로 명령들을 감싸는 역할을 한다. 외부로부터 매개변수를 이용해 데이터를 받고, 결과값을 반환할 수 있다.

function abc() {}	// 선언. 함수 이름이 앞에 있다. 호이스팅 O
const abc = function() {}	// 표현. 익명함수를 변수에 할당. 호이스팅 X

0개의 댓글