본문 바로가기

전체 글

(39)
6.1 재귀와 스택 재귀(recursion) 📢 함수가 자기 자신을 호출하는 것 ◾️ 큰 목표 작업 하나를 동일하면서 간단한 작업 여러 개로 나눌 수 있을 때 유용한 프로그래밍 패턴이다. ◾️ 목표 작업을 간단한 동작 하나와 목표 작업을 변형한 작업으로 단순화 시킬 때도 재귀를 사용 ◾️ 특정 자료구조를 다뤄야 할 때도 재귀가 사용 두 가지 사고방식 ◾️ x를 n 제곱해 주는 함수 pow(x, n)을 만들어 보자 // pow 예시 pow(2, 2) = 4 pow(2, 3) = 8 pos(2, 4) = 16 1. 반복적인 사고를 통한 방법 : 🔎 for loop function pow(x, n) { let result = 1; for (let i = 0; i < n; i++) { result *= x; } return res..
4.8 객체를 원시형으로 변환하기 1. 객체는 논리 평가 시 true를 반환한다. 따라서 객체는 숫자형이나 문자형으로만 형 변환이 일어난다. 2. 숫자형으로의 형 변환은 객체끼리 빼는 연산을 할 때나 수학 관련 함수를 적용할 때 일어난다. (객체 Date끼리 차감하면 두 날짜의 시간 차이가 반환된다.) 3. 문자형으로의 형 변환은 대게 alert(obj)같이 객체를 출력하려고 할 때 일어난다. ToPrimitive 📢 특수 객체 메서드를 사용하면 숫자형이나 문자형으로의 형 변환을 원하는 대로 조절 할 수 있다. ◾️ 객체 형 변환은 'hint'라 불리는 값을 기준으로 세 종류로 구분된다. ⚠️ hint : 목표로 하는 자료형 ◾️ hint가 string일 때 : 문자열을 기대하는 연산을 수행할 때(객체 - 문자형 변환) // 객체를 출력..
4.7 심볼형 📢 자바스크립트는 객체 프로퍼티 키로 문자형과 심볼형만을 허용한다. 심볼(Symbol) 📢 유일한 식별자(unique identifier)를 만들고 싶을 때 사용한다. let id = Symbol(); ◾️ 심볼을 만들 때 심볼 이름이라 불리는 설명을 붙일 수도 있다. ✅ 디버깅시 아주 유용 let id = Symbol('id'); ◾️ 심볼은 유일성이 보장되는 자료형이기 때문에, 설명이 동일한 심볼을 여러 개 만들어도 각 심볼값은 다르다. let suzu = Symbol('name'); let ruru = Symbol('name'); console.log(suzu == ruru); // false ⚠️ 심볼은 문자형으로 자동 형 변환되지 않는다. ◾️ 자바스크립트에선 문자형으로의 암시적 형 변환이 비교..