본문 바로가기

언어8

BigInt 큰 숫자 다루기 코딩 테스트 문제를 풀다보면 큰 숫자를 다룰 때가 있다. 자바스크립트는 최대 9007199254740991까지 정확한 숫자를 다룰수 있다 아래 코드를 실행시켜 보면 결과를 다르게 나타나 있다. console.log(9007199254740991 + 10); console.log(9007199254740991 + 20); console.log(9007199254740991 + 30); 해결법(결론) BinInt를 사용해주는 것이다. 사용법은 BigInt(숫자나 문자)처럼 사용해주거나 1231231231n처럼 마지막에 n 을 붙여주면 된다. console.log(9007199254740991n + 10n); console.log(9007199254740991n + 20n); console.log(900719.. 2023. 4. 12.
자바스크립트 This 이걸로 끝내기 This란? 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수다. this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있다. 객체 리터럴에서 this는 자기 자신을 가리킴 const circle = { radius: 5, getDiameter() { return 2 * circle.radius; }, }; console.log(circle.getDiameter()); // 10 생성자 함수 내부의 this는 생성자 함수가 생성할 인스턴스를 가리킴 function Circle(radius) { this.radius = radius; } Circle.prototype.getDiameter = function () { return 2 * thi.. 2023. 3. 28.
Iteration Protocol(for of, spread) 자바스크립트를 사용하다 보면 자연스럽게 [... arr]처럼 스프레드 연산자를 사용한다. 그게 왜 가능 할까? 한번 알아보자. 이터레이션 프로토콜(Iteration Protocol) 이터레이션 프로토콜이란? 반복, 순회를 하기 위해서 따르는 규격, 약속, 인터페이스이다. 이 프로토콜을 따르면 for of나 spread 연산자를 사용 가능 하다. 자바스크립트에서는 Array, String, Map, Set이 녀석들이 이 프로토콜을 따른다. 그럼 이 이터레이션을 따르는 것은 뭘까? 그건 Iterable, Iterator 프로토콜을 따르면 된다. 간단하다. 아래 두 가지만 기억하면 된다. 더보기 Iterable: Iterator을 리턴하는 [Sysmbol.iterator]()을 가진 값 Iterator: ne.. 2023. 3. 21.
이벤트 캡처링과 버블링 아래와 같은 그림이 있다. 해당 그림은 각 네모박스마다. click 이벤트가 등록되어 있는데 아래 코드처럼 이벤트가 등록되어있다. Click Me 여기서 Click Me 버튼을 클릭하면 콘솔로그에는 아래 그림 처럼 나타난다. 이유가 뭘까? 바로 이벤트 버블링 때문이다. 이벤트 버블링이란? 자식 요소가 이벤트가 발생이 되면 부모도 자신이 등록된 이벤트가 호출 되는 것이다. 가장 최상단의 부모까지 이벤트가 발생한다. 다시 정리하면 이벤트 버블링은 HTML 요소에서 이벤트가 발생하면 해당 이벤트가 발생한 요소에서 시작하여 상위 요소로 전파되는 과정을 의미합니다. 즉, 자식 요소에서 이벤트가 발생하면 부모 요소까지 이벤트가 전파되는 것을 말합니다. 즉, Click Me 결과에 저렇게 나온 이유가 Click Me.. 2023. 3. 6.