목록모든 글 (126)
코딩쌀롱
📌 String to Number ( typeof NaN === 'number' → true의 문제 ) // 숫자, [, ] → 이것들만 골라내기 위해 만든 함수 // (boolean값 반환 - 다른 함수에서 filter로 걸러서 배열 만듦) braceNumFilter(item) { return item === '[' || item === ']' || (typeof parseInt(item) === 'number' && isFinite(parseInt(item)) ); } 배열 안에 string 자료형인 숫자 거르기! 1. typeof item === 'number' 처음에 자료형이 string인 거 생각 못하고 이렇게 함. 2. typeof (item * 1) === 'number' typeof Num..
📌 Parsing 언어학에서 파싱(parsing)은 '구문 분석'이라고 부른다. 문장을 구성 성분으로 분해하고 그들 사이의 위계 관계를 분석해 문장 구조를 결정하는 것. CS에서는 일련의 문자열을 의미있는 토큰 단위로 분해하고 이를 parse tree로 변환하는 과정을 말한다. 파서(Parser)는 이러한 파싱을 수행하는 프로그램. 세부적으로 나눈다면, tokenizer lexer parser tokenizer는 input을 알맞은 토큰 단위로 나눠주고, lexer는 나눠진 토큰들을 분석해 문맥적 의미를 부여한다. parser는 분석된 token들을 문법적으로 검사하고, parse tree로 만들어준다. 📌 구조 분해 할당 구조 분해 할당(destructuring). 비구조화라고도 함. 배열이나 객체의 ..
객체: 키가 있는 컬렉션을 저장 배열: 순서가 있는 컬렉션을 저장 ➔ 두 자료구조만으로 부족해서 Map과 Set이 등장. ✏️Map Map은 key가 있는 데이터를 저장한다는 점에서 객체와 유사. 하지만 Map은 key에 다양한 자료형을 허용한다는 점에서 다름. 맵은 키로 객체도 허용한다! (NaN도 허용) let john = {name: "John"}; let visitsCountMap = new Map(); // 고객의 방문 횟수를 세본다고 가정 visitsCountMap.set(john, 123); // john 객체를 맵의 키로 사용 alert(visitsCountMap.get(john)); // 123 📌 Map 메서드, 프로퍼티 new Map() 새로운 맵을 만듦 map.set(key, val..
✏️Hashmap 특정값 → 해시함수 → 인덱스에 저장 해시 테이블은 어떤 특정 값을 받으면 그 값을 해시 함수에 통과시켜 나온 index에 저장하는 자료구조이다. 시간 복잡도가 O(1)이다. 직접 주소 테이블은 값에 접근하기는 편하지만 공간 효율이 좋지 않다는 단점이 있다.(저장된 데이터를 제외하고 나머지 공간은 값은 없지만 메모리 할당된 상태 = 적재율이 낮다) 이 단점을 보완한 것이 해시 테이블이다. 해시 테이블은 직접 주소 테이블처럼 값을 바로 테이블의 인덱스로 사용하는 것이 아니라 해시 함수에 통과시켜서 사용한다. 해시 함수는 임의의 길이를 가지는 임의의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 이 때 이 함수가 뱉어내는 결과물을 해시라고 한다. 📌 hash function 아래 과정..
prototype prototype은 말 그대로 객체의 원형. 함수는 객체 → 생성자도 객체 → 객체는 property를 가질 수 있고, prototype이라는 property를 가진다. (생성자 함수의 프로퍼티로 prototype을 갖는다) prototype에 저장된 속성들은 생성자를 통해서 객체가 만들어질 때 그 객체에 연결된다. function Ultra() {} Ultra.prototype.ultraProp = true; function Super() {} var t = new Ultra(); t.ultraProp = 4; Super.prototype = t; function Sub() {} Sub.prototype = new Super(); var o = new Sub(); console.log..
✏️Debugging breakpoint breakpoint(중단점)은 JavaScript의 실행이 중단되는 코드 내 지점을 의미한다. 동작이 의심되는 곳에 breakpoint를 지정해 코드 실행을 확인한다. Watch 표현식을 평가하고 결과를 보여준다. Add Expression 버튼 +를 클릭해 원하는 표현식을 입력한 후 Enter를 누르면 중단 시점의 값을 보여준다. Call stack 코드를 해당 중단점으로 안내한 경로를 역순으로 표시한다. 호출된 함수가 실행된 순서대로 쌓이고, 가장 위에 쌓인 것부터 다시 해제되고 값 을 return한다. Scope 현재 정의된 모든 변수를 출력한다. Local은 함수의 지역변수를 보여준다. Global은 함수 바깥에 정의된 전역 변수를 보여준다. 실행 추적 R..