Thief of Wealth
javascript class를 funcition으로 변환해보기
개발/FrontEnd Interview 2021. 11. 17. 01:09

총 3가지 예제를 통해서 javascript의 class를 function으로 변환해봅시다. 이게 가능한 이유는, javascript class는 그저 syntactic sugar이기 때문이고, 내부적으로는 function과 prototype의 조합으로 이루어져 있기 떄문입니다. 예제 1. class A { constructor(x,y) { this.x = x; this.y = y; } } 이것은 function으로 다음과 같이 바꿀 수 있습니다. function A(x,y) { this.x=x; this.y=y; } 간단합니다! 그럼 메서드를 추가해봅시다. 예제2. class A { constructor(x,y){ this.x = x; this.y = y; } say(){ return "say"; } ..

npm 패키지를 cdn으로 가져오기
개발/Web Programming 2021. 9. 5. 13:46

https://www.jsdelivr.com/ jsDelivr - A free, fast, and reliable CDN for Open Source Supports npm, GitHub, WordPress, Deno, and more. Largest network and best performance among all CDNs. Serving more than 80 billion requests per month. Built for production use. www.jsdelivr.com 원래 일반적으로 그냥 github나 gist에 배포해서 src에 js 주소를 넣어주면 되지 않나 싶었는데, 그렇게 하니까 CORS에러가 뜬다. 찾아보니 github repo나 npm 패키지를 cdn으로 배포해주는 무..

javascript replaceAll
개발/Javascript 2021. 8. 4. 04:05

const replaceAll = (str, from, to) => { return str.split(from).join(to); };

Promise란 무엇이고, 왜 등장하게 되었는가
개발/FrontEnd Interview 2021. 4. 9. 15:37

정의 Promise는 자바스크립트 비동기 처리에 사용되는 객체입니다. (실제 연산을 직접 처리해주는 것은 아니고, 해당 연산을 대리하여 결과나 실패를 처리하기 위한 처리기와 연결할 수 있도록 하는 객체) 그리고 비동기란, "특정 코드의 실행이 완료될 때까지 기다리지 않고, 다음 코드를 먼저 수행하는 특성"을 말합니다. 탄생 배경 예전 작은 규모의 웹에서는 비동기 요청이 많지 않아서, 각 비동기 요청간 의존성이 크지 않았지만, 웹이 발전하고 다양한 플랫폼으로 진출하면서, 단순히 callback만으로는 모든 상태를 통제하기 어렵게 되었다. 그래서 기존 비동기 처리 코드들을 동일한 (표준) api형태로 사용할 수 있게 해주는 ES6에서 추가된 기능이다. Promise 없이 Callback으로만 비동기 처리할 ..

javascript GC 동작
개발/FrontEnd Interview 2021. 4. 5. 01:45

보통 프로그래밍 언어에서 메모리 생명 주기를 말하면 다음과 같다. 1. 필요한 메모리 할당 2. 할당된 메모리 사용 (읽기, 쓰기) 3. 해당 메모리가 필요 없어지면 해제 자바스크립트에서는 값 초기화, 함수호출 시에 메모리가 할당되고, 할당된 메모리가 더 이상 필요하지 않은 시점에 메모리를 해제한다. C, C++ 처럼 로우레벨 언어들은 수동으로 메모리를 직접해제 해주어야하지만, 자바스크립트나 파이썬과 같이 하이 레벨언어는 GC (가비지 컬렉션)이라는 자동 메모리 관리 형식을 활용한다. 가비지 컬렉터의 목적은 메모리 할당을 모니터링하고, 할당된 메모리의 블록이 더 이상 필요하지 않은 시점을 확인하여 회수하는 것이다. 하지만, 항상 필요 없어진 메모리만을 해제한다고 확신은 할 수 없기 때문에, 안전하지만 완..

꼬리 호출
개발/FrontEnd Interview 2021. 3. 25. 00:36

Tail Call Optimization 꼬리 호출 최적화 - 꼬리 호출함수는 무엇인가요? 꼬리 호출 함수는 함수가 마지막으로 하는 일이, 어떤 함수를 호출해 그 결과를 바로 반환일을 하는 함수를 뜻합니다. 예를 들어서 function func1(any){ return function func2(greeting, ...args){ return greeting(any(...args)); } } 같은 경우가 꼬리 호출 함수이다. - 그것이 어떤 장점을 지니고 있나요? 함수는 일반적인 동작을 설명해보겠습니다. zereight.tistory.com/manage/posts/ 위 포스팅에서 중요한 차이점 하나는, 활성 객체가 충분히 크다면 (원래 크지만), 새로운 활성 객체를 할당할 필요가 없다는 것입니다. 즉, ..

[Javascript] Class ToString
개발/Javascript 2021. 3. 1. 10:44

자바스크립트에는 어떤 값을 문자열로 변환시켜주는 toString()이라는 것이 존재한다. toString의 인자로는 진법을 넣을 수 있다. (3).toString(2) // '11' 인자로 아무것도 넘겨주지 않으면 그대로 문자열이 된다. 아무 평범한 함수처럼 보이지만, class에서 유용하게 사용할 수 있는 방법을 습득했다. class User { constructor(name) { this.name = name; } toString() { return this.name; } } console.log(`Hi ${new User("Dobby")}`); 위 코드를 실행시키면 어떻게 될까? 'Hi Dobby'가 출력되게 된다. 백틱안의 객체가 문자열화 되면서 자동으로 .toString()을 호출했기 때문이다.

[Javascript] NaN
개발/Javascript 2021. 3. 1. 00:20

자바스크립트에는 Not a Number를 체크할 수 있는 방법이 있는데, Number.isNaN(1) // true Number.isNaN('1') // false 바로 Number.isNaN이다. 인수로 숫자가 아닌값이 들어오면 false를 리턴한다. 여기서 숫자는 integer 값이다. 다음과 같이 실수가 들어와도 false를 리턴한다. Number.isNaN(10.1) // false 다음과 같은 재미있는 특성도 있다. (자기자신이 다르다는데 맞다고 하는게 NaN이다.) var a = NaN; a !== a; // true var b = "foo"; b !== b; // false var c = undefined; c !== c; // false var d = {}; d !== d; // false..

profile on loading

Loading...