Steady Dev - TIL

데이터 타입

원시타입

  • number
  • string
  • boolean
  • null
  • undefined
  • symbol

참조타입

  • object

null vs undefined

  • undefined은 변수를 선언하고 값을 할당하지 않은 상태, undefined는 자료형이 없는 상태 입니다.
  • null은 변수를 선언하고 빈 값을 할당한 상태(빈 객체)입니다.

정적 타이핑 vs 동적 타이핑

  • 정적 타이핑 : 정적 타이핑은 변수를 선언할 때 타입을 명시해주는 것입니다. 이렇게 되면 코드를 실행하는 속도가 빨라집니다.
  • 동적 타이핑 : 동적 타이핑은 변수의 데이터 타입을 명시하지 않아도 컴퓨터가 알아서 해석합니다. 데이터 타입이 뭔지 파악하는 것을 컴퓨터에 맡기기 떄문에 그만큼 실행 속도가 느려지지만 로직을 간결하게 해준다는 장점이 있습니다. 자바스크립트는 동적 타이핑 입니다.

명시적 타입 변환 vs 암시적 타입 변환

  • 명시적 타입 변환 : 개발자가 의도를 가지고 데이터 타입을 변환시키는 것입니다. Number(), Object(), String(), Boolean()을 이용하여 변경합니다.
  • 암시적 타입 변환 : 암시적 변환이란 자바스크립트 엔진이 필요에 따라 자동으로 데이터 타입을 변환하는 것입니다. 예를들어 숫자와 문자를 더하면 문자로 타입이 변환되는 것을 의미합니다.

truthy vs falsy

truthy는 참 같은 값, falsy는 거짓 같은 값을 의미합니다.

truthy
if (true)
if ({})
if ([])
if (42)
if ("0")
if ("false")
if (new Date())
if (-42)
if (12n)
if (3.14)
if (-3.14)
if (Infinity)
if (-Infinity)
falsy
if (false)
if (null)
if (undefined)
if (0)
if (-0)
if (0n)
if (NaN)
if ("")

https://developer.mozilla.org/en-US/docs/Glossary/Truthy https://developer.mozilla.org/en-US/docs/Glossary/Falsy

function vs method

자바스크립트 함수가 객체의 프로퍼티로 저장된다면 메소드이고, 객체의 프로퍼티가 아니라면 함수입니다.

순수 함수 vs 순수하지 않은 함수

순수 함수는 동일한 인자가 전달되면 항상 동일한 결과를 반환하는 함수입니다.

순수 함수의 예
function addition(number1, number2) {
return number1 + number2;
}
순수하지 않은 함수 예
let otherNumber = 10;
function addition(number1, number2) {
return number1 + number2 + otherNumber;
}

task queue & event loop

태스크 큐

setTimeout이나 setInterval과 같은 비동기 함수의 콜백 함수 또는 이벤트 핸들러가 일시적으로 보관되는 영역입니다. 태스크 큐와는 별도로 프로미스의 후속 처리 메서드의 콜백 함수가 일시적으로 보관되는 마이크로태스트 큐도 존재합니다.

이벤트 루프

이벤트 루프는 현재 실행 중인 실행 컨텍스트가 있는지, 그리고 태스크 큐에 대기 중인 함수(콜백 함수, 이벤트 핸들러)가 있는지 반복해서 확인하는 역할입니다. 만약 콜 스택이 비어있고 태스크 큐에 대기 중인 함수가 있다면 이벤트 루프는 순차적으로 태스크 큐에 대기 중인 함수를 콜 스택으로 이동시킵니다. 이때 콜 스택으로 이동한 함수는 실행됩니다. 즉, 태스크 큐에 일시 보관된 함수들은 비동기 처리 방식으로 동작합니다.

공부해야할 키워드 : wrapper 객체, 빌트인 객체,