JavaScript
-
클래스에서 바인딩 현상이 발생하였을 때JavaScript 2022. 12. 28. 22:03
자바스크립트를 공부하다보면 클래스를 사용해본 경험이 있었을 것이다. 나 또한 리액트를 계속 공부하면서 우아한 테크 코스에서 오랜만에 클래스를 사용해봤고, 최근에 ES5 생성자 함수를 공부하면서 내가 지금까지 잘못알고있었던 지식이 있었다. 물론 자바스크립트를 잘하는 사람이라면 이 글을 보고 당연하다고 생각하겠지만, 나처럼 모르는 사람이 있을 수도 있기 때문에 한번 작성해보고자 한다. 바인딩 누구나 한번쯤은 클래스에서 바인딩 현상을 경험하였을 것이다. 나또한 처음에 자바스크립트를 배우면서 바인딩 현상을 경험했고, 최근에 우테코에서도 바인딩 현상이 일어나 이를 해결했던 경험이 있었다. 그래서 바인딩 현상을 해결하고자 알려진 대표적인 방법은 아래와 같다. 바인딩 현상 해결방법 bind() 함수 사용 ES5 생성..
-
ES5의 생성자 함수JavaScript 2022. 12. 26. 21:16
자바스크립트를 처음 공부하기 시작했을 때는 ES6였고, 그때부터 나는 ES5에대하여 크게 신경을 쓰지 않고 ES6 문법을 기초로 하여 현재까지 공부를 해왔다. 그러다 나는 우연히 특정 코딩 테스트의 문제를 보게 되었다. 근대 해당 문제에서 함수에서 this와 prototype을 사용하면서 마치 클래스처럼 사용하고 있었다. 물론 나는 이게 뭐지? 라는 생각을 갖고 모던 자바스크립트 Deep Dive 책을 찾아보게 되었고, 나는 그것이 생성자 함수라는 것을 알게되었다. 생성자 함수가 ES6로 넘어오면서 단점을 보완하여 나온것이 Class였다. ES5 생성자 함수 var Person = (function (){ function Person(name){ this.name = name; } Person.proto..
-
정규표현식이 무엇일까??JavaScript 2022. 9. 1. 15:36
코딩 테스트를 하거나 프로젝트를 할때 문자열을 판별해본 경험은 한번쯤은 있었을 것이다. 그때마다 괴상한 코드를 통해 문자열을 비교하는데 그 괴상한 코드가 바로 정규표현식 또는 정규식 이라고 불리는 문자 조합을 찾기 위한 패턴이다. 정규 표현식 JavaScript에서는 정규 표현식도 객체로서, RegExp, exec(), text() 메서드를 사용할 수 있다. String의 match(), matchAll(), replaceAll(), search(), split() 메서드와도 함께 사용할 수 있다. 출처: mdn 공식 문서 이처럼 정규표현식과 다양한 메서드를 사용하면 내가 찾고자 하는 문자열 혹은 문자열끼리의 비교가 가능하다. 정규표현식을 만드는 방법에는 두가지 방법이 있다. 리터럴, 슬래시 패턴을 감싸..
-
getter & setter 를 사용해 보자!JavaScript 2022. 8. 26. 23:57
프로젝트를 하면서 객체를 생성하는 일은 매우 빈번히 일어난다. 그중에서도 최근에 Stack 알고리즘을 직접 구현할 때 나는 getter와 setter를 사용했기에 다시한번 복습하고자 이 글을 작성해보고자 한다. getter와 setter 란? 접근자 프로퍼티는 getter(획득자)와 setter(설정자) 메서드로 표현될 수 있다. 객체 리터럴 안에서 getter와 setter는 get과 set으로 나타낼 수 있다. getter 메서드는 프로퍼티를 읽으려고 할 때 실행되고, setter 메서드는 프로퍼티에 값을 할당하려 할 때 실행된다. const obj = { get prop(){ }, set propName(name){ } }; 이렇게 설명을 읽고나면 처음엔 그래서 왜 getter와 setter를 쓰는..