원시 타입 값에서 메서드를 쓸 수 있는 이유 (+왜 숫자 리터럴에서는 안 될까?)
·
Frontend/JS, TS
메서드는 정적 메서드와 인스턴스 메서드로 구분할 수 있습니다. 정적 메서드는 인스턴스 없이 바로 호출할 수 있는 메서드를 말하고, 인스턴스 메서드는 인스턴스를 주체로 하여 호출되는 메서드를 말합니다. Number.prototype.toString, String.prototype.split 등이 인스턴스 메서드입니다. 그런데 원시형 타입인 숫자나 문자열이 어떻게 메서드를 가질 수 있는 걸까요? 메서드는 객체에 프로퍼티로 할당된 함수를 말하는 건데 말입니다. 우리는 어떻게 원시형 타입을 마치 객체처럼 다룰 수 있는 걸까요? 이 메서드는 어디에 있는 걸까요? 원시형 타입과 객체 래퍼 타입자바스크립트는 원시형 타입 값을 자동으로 객체로 래핑(wrapping)합니다. 예를 들어 primitive string 값..
문자열을 배열로 만들 때 Array.from과 split 차이점 (feat. 유니코드)
·
Frontend/JS, TS
Array.from과 String.prototype.split자바스크립트에서 문자열을 배열로 변환하는 방법으로는 Array.from()과 String.prototype.split()이 있다.두 메서드는 다음과 같이 사용할 수 있다.const str = 'abcd';console.log(str.split('')); // ['a', 'b', 'c', 'd']console.log(Array.from(str)); // ['a', 'b', 'c', 'd'] 각 메서드의 목적둘 다 문자열을 배열로 만들어주지만, 메서드의 목적이 다르다.Array.from은 유사 배열 객체 또는 이터러블을 배열로 만들기 위한 메서드이다.반면 String.prototype.split은 문자열을 특정 구분자로 분리한 결과를 배열로 반환하..
JS | 퍼즐 조각 채우기
·
Algorithm
#문제 정보프로그래머스, 퍼즐 조각 채우기문제: https://school.programmers.co.kr/learn/courses/30/lessons/84021#문제 요약정사각 격자 모양에 크기가 서로 같은 2차원 배열 game_board와 table가 주어진다.table에는 여러 도형 퍼즐이 놓여 있다. 도형 퍼즐은 1, 빈 공간은 0으로 표현되어 있다.game_board에는 퍼즐을 끼워 맞출 수 있는 빈 공간이 있다. 빈 공간은 0, 막힌 부분은 1로 표현되어 있다.table에 있는 도형 퍼즐을 game_board의 빈 공간에 최대한 많이 넣어 맞추려 할 때, 총 몇 칸을 채울 수 있을까?table의 도형 퍼즐을 빈 공간에 맞추기 위해서 회전할 수는 있지만, 뒤집을 수는 없다.#접근 방식table을..
js | 벽 부수고 이동하기
·
Algorithm
#문제 설명 백준, 2206 벽 부수고 이동하기 문제: https://www.acmicpc.net/problem/2206 #오답 풀이 시작점에서 도착점까지의 최단 거리는 BFS로 구한다. 문제는 어떤 벽을 부숴야 하는지이다. 내가 짠 알고리즘은 이러했다. 시작점에서 어떤 벽까지의 최단 거리 + 그 벽에서 도착점까지의 거리를 구하기 위해, BFS를 두 번 나누어 수행한다. 처음 BFS에서는 방문하지 않은 길을 탐색하면서, 벽을 만난다면 벽의 위치를 다른 큐에 담는다. visited에 거리를 담는다. 다음 BFS에서는 벽의 위치를 담은 큐를 가지고 BFS를 수행한다. 벽에서 시작한다는 건 이미 벽을 부쉈다는 것이라고 볼 수 있으므로, 벽을 만난다면 무시한다. 반면 저번에 방문한 적이 있는 위치여도 현재 루트..
프로토타입(Prototype) 총정리
·
Frontend/JS, TS
1. 프로토타입 개념 프로토타입이란, 자신의 원형(prototype)이 되는 객체를 의미 “프로토타입 객체”라고도 함 자바스크립트에서 모든 객체는 프로토타입을 가짐 2. 프로토타입 동작 원리 function Person() {} var joon = new Person(); var jisoo = new Person(); Person 함수는 Person 프로토타입 객체를 prototype 프로퍼티로 참조한다. Person 프로토타입 객체는 Person 함수를 constructor 프로퍼티로 참조한다. Person 프로토타입 객체는 Person 함수로 생성된 모든 객체(=인스턴스)의 원형이 되는 객체이다. Person 함수로 생성된 모든 객체(=인스턴스)는 프로토타입(원형)인 Person 프로토타입 객체를 _..