개인적인 This 정리
개발/JavaScript2023. 9. 24. 13:16개인적인 This 정리

모던 자바스크립트 deep dive에서 this 관련 부분을 읽던 도중에 헷갈려서 자세히 공부한 내용을 블로그에 남김. 외부 함수인 메서드와 중첩 함수 또는 콜백 함수의 this가 일치하지 않는다 외부 함수인 메서드와 중첩 함수 또는 콜백 함수의 this가 일치하지 않는다는 의미는, 함수의 호출 방식에 따라 this가 가리키는 대상이 달라진다는 것을 의미한다. const obj = { value: 100, outerFunc: function() { console.log("outerFunc's this:", this); // {value: 100, outerFunc: ƒ} const innerFunc = function() { console.log("innerFunc's this:", this); // w..

JS에서의 Boxing 처리
개발/JavaScript2023. 6. 21. 15:14JS에서의 Boxing 처리

Javascript에서 다음과 같은 메소드를 사용한 경험이 있을 것이다. // 대문자로 변경하는 경우 const test_1 = "hello world!"; test_1.toUpperCase(); // 소수점 표현하는 경우 const test_2 = 1.0001; test_2.toFixed(1); "hello world!" 와 1.0001 는 원시타입이다. 즉, 객체가 아니기에 가지고 있는 메서드가 없는 것이다. 하지만 메서드를 사용할 수 있는 이유가 자바스크립트 엔진에서 Boxing 과정이 이루어지기 때문이다. Boxing 원시타입을 래퍼 객체로 wrapping하는 과정을 말한다. test_1 변수를 기준으로 설명하고자 한다. 우선 test_1.toUpperCase() 를 실행하게 되면 javascri..

Array.prototype.reduce()
개발/JavaScript2023. 5. 7. 22:31Array.prototype.reduce()

reduce 함수는 배열의 각 요소에 대해 주어진 함수를 실행하고, 하나의 결과값을 반환한다. 이 함수는 배열에서 숫자의 합이나 평균 등을 계산할 때 유용하게 사용된다. 누적해서 callback function을 각 요소마다 갈겨서, 결과 값을 반환해내는 식으로 반복하는거다. reduce 함수는 다음과 같은 구문을 사용한다. // 기본 구문 형식 array.reduce(function(total, currentValue, currentIndex, arr), initialValue) // 초기값인 initValue를 지정하지 않을 때. let result = arr.reduce(callback); // 선택적으로 초기 값(initValue)도 지정할 수 있다. let result = arr.reduce(c..

image