목록분류 전체보기 (50)
개발여행의 블로그
유클리드 호제법 (유클리드 알고리즘)은 2개의 자연수의 최대공약수를 구하는 알고리즘이다. * 최대공약수 : GCD(Greatest Common Divisor) 양의 정수 A, B가 존재하고 A가 B보다 크다는 전제하에 A를 B로 나눈 나머지를 r이라고 칭한다. 이때 A와 B의 최대공약수는 B와 r 사이의 최대공약수와 같다. 이것이 유클리드 호제법이다. 그 이유를 살펴보자! A는 어떤 수 * 최대공약수, B는 어떤 수 * 최대공약수로 나타낼 수 있다. 즉 아래와 같이 나타낼 수 있다. (최대공약수이기 때문에 더 이상 약수는 존재하지 않아야 하므로 a와 b는 서로소이다.) 여기서 증명해야 할 것은 A와 B의 최대공약수는 G이므로 A를 B로 나눈 나머지가 r이었을 때, B와 r의 최대공약수도 G인지 확인해야 ..
이 글은 '모던 자바스크립트 Deep Dive' 내용을 발췌한 글입니다. 논리 연산자를 사용한 단축 평가 논리곱(&&) 또는 논리합(||) 연산자 표현식은 언제나 2개의 피연산자 중 어느 한쪽으로 평가 논리곱 (&&) 연산자 > 논리곱 연산자는 두 개의 피연산자가 모두 true로 평가될 때 true를 반환 > 논리곱 연산자는 좌항에서 우항으로 평가가 진행 'One' && 'Two' 첫 번째 피연산자 'One'은 Truthy 값이므로 true로 평가된다. 하지만 이 시점까지는 위 표현식을 평가할 수 없다. 두 번째 피연산자까지 평가해야 위 표현식을 평가할 수 있다. 즉, 두 번째 피연산자가 위 논리곱 연산자 표현식의 평가 결과를 결정한다. 이때 논리곱 연산자는 논리 연산의 결과를 결정하는 두 번째 피연산자..
✅ for ... of The for...of statement creates a loop iterating over iterable objects, including: built-in String, Array, array-like objects (e.g., arguments or NodeList), TypedArray, Map, Set, and user-defined iterables. It invokes a custom iteration hook with statements to be executed for the value of each distinct property of the object. for of 문은 iterable을 순회하면서 iterable의 요소를 변수에 할당한다. 내부적으로 it..
이 글은 '모던 자바스크립트 Deep Dive'를 공부하고 정리한 내용입니다. 실행 컨텍스트는 JavaScript 동작 원리를 담고 있는 핵심 개념이다. JavaScript가 스코프를 기반으로 식별자와 식별자에 바인딩된 값(식별자 바인딩)을 관리하는 방식과 호이스팅이 발생하는 이유, 클로저의 동작 방식, task queue와 함께 동작하는 이벤트 핸들러와 비동기 처리 동작 방식을 이해하기 위해 실행 컨텍스트가 중요하기 때문에 정리하고 넘어가려고 한다. ECMAScript는 소스코드를 4가지 타입으로 구분하는데, 이 소스코드는 실행 컨텍스트를 생성한다.(소스코드의 타입에 따라 실행 컨텍스트를 생성하는 과정과 관리 내용이 다르기 때문에 구분한다.) 1️⃣전역 코드(global code) > 전역에 존재하는 ..
이번 과제는 생성자 함수 그리고 this, prototype을 사용하여 문제를 해결해나가는 것이 key point였던 것 같다. 그래서 생성자 함수를 왜 사용하는지 그 목적에 대해 정리해보려고 한다. 생성자 함수의 정의와 다양한 객체 생성 방식 중 생성자 함수를 사용하는 방식에 대해 알아보자. 생성자 함수(constructor)란? new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수이다. 생성자 함수에 의해 생성된 객체를 인스턴스(instance)라고 한다. > 참고 | 자바스크립트는 빌트인 생성자 함수를 제공한다. (Object, String, Number, Boolean, Function, Array, Date, RegExp, Promise) 객체 리터럴에 의한 객체 생성 VS 생성자 함수..
과제를 하던 중 함수의 return값을 사용하는 부분이 없는데도 this를 return하는 코드를 발견했다. 확장성을 위해 return을 해둔 것인가? 라는 생각이 들었는데 검색해보아도 명확한 해답을 찾지 못했다. 그래서 질문을 남겨보았다. 질문하자마자 method chaining을 위한 코드라는 답변을 달아주셨다.🙇♀️ ✅Method Chaining 연속적인 코드 줄에서 개체의 Method를 반복적으로 호출하는 것을 의미한다. Method가 객체를 반환하면 그 반환 값(객체)이 또 다른 Method를 호출할 수 있다. Method Chaining is a programming strategy that simplifies and embellishes your code. It is a mechanism ..