JS(5)
-
[모던 자바스크립트 Deep Dive] - 9장 정리
자바스크립트를 쓰다 보면 분명히 숫자인데 문자열처럼 동작하거나, null인 줄 알았던 값이 갑자기 에러가 터지거나 하는 상황을 마주치게 된다. 대부분 타입 변환을 제대로 이해하지 못해서 생기는 일이다. 이번 글에서는 자바스크립트에서 타입 변환이 어떻게 일어나는지, 단축 평가 및 최신 연산자들에 대해 정리해봤다. 타입 변환이란?자바스크립트의 모든 값에는 타입이 있다. 그리고 그 타입은 두 가지 방식으로 바뀔 수 있다.명시적 타입 변환(타입 캐스팅) 은 개발자가 의도적으로 타입을 바꾸는 것이고 암묵적 타입 변환(타입 강제 변환) 은 자바스크립트 엔진이 표현식을 평가하는 도중에 자동으로 타입을 바꾸는 것이다.한 가지 중요한 포인트가 있다. 두 방식 모두 기존 원시 값을 직접 바꾸는 게 아니다. 원시값은 변경 ..
2026.04.01 -
JavaScript this
자바스크립트 공부하다 보면 this 때문에 한 번씩 멈추게 된다.나도 코드 보다가 “왜 여기서는 this가 Tom이고 여기서는 undefined지?” 하면서 정리하게 됐다.결론부터 말하면 자바스크립트에서 this는함수가 어떻게 호출되었는지에 따라 결정된다.즉 어디서 선언됐는지가 아니라, 어떻게 실행됐는지가 중요하다.일반 함수 호출function test() { console.log(this);}test();브라우저에서 실행하면 결과는window일반 함수로 실행하면 기본적으로 this는 전역 객체를 가리킨다.브라우저에서는 전역 객체가 window이다.그래서 일반 함수에서는 보통this = window라고 생각하면 편하다.객체의 메서드로 호출객체 안에 있는 함수를 호출하면 this는 그 객체를 가리킨다.c..
2026.03.16 -
[모던 자바스크립트 Deep Dive] - 3장 정리
브라우저에는 자바스크립트 엔진이 내장되어 있다모든 웹 브라우저에는 자바스크립트를 해석하고 실행하는 엔진이 내장되어 있다.이 엔진이 자바스크립트 코드를 읽고 실행한다.대표적인 자바스크립트 엔진Chrome : V8Firefox : SpiderMonkeySafari : JavaScriptCore예시console.log("Hello JavaScript");이 코드는 브라우저에서 다음 과정을 거쳐 실행된다.자바스크립트 코드→ 엔진이 코드 파싱→ 실행따라서 브라우저만 있어도 자바스크립트를 실행할 수 있다.브라우저 환경과 Node.js 환경의 차이자바스크립트는 브라우저뿐 아니라 Node.js 환경에서도 실행할 수 있다.하지만 두 환경은 목적이 다르기 때문에 제공하는 기능도 다르다.브라우저 환경목적웹 페이지를 화면에 ..
2026.03.11 -
[모던 자바스크립트 Deep Dive] - 2장 정리
1. 자바스크립트 표준화와 크로스 브라우징 문제초기 웹 환경에서는 브라우저마다 자바스크립트 구현 방식이 달랐다.대표적으로 다음 두 기술이 경쟁했다.Netscape : JavaScriptMicrosoft : JScript두 회사가 서로 다른 방식으로 자바스크립트를 구현하면서 같은 코드라도 브라우저마다 다르게 동작하는 문제가 발생했다. 이를 크로스 브라우징 문제라고 한다. 예시var element = document.getElementById("box");어떤 브라우저에서는 정상 동작하지만 다른 브라우저에서는 DOM API 구현 차이로 인해 동작하지 않는 경우가 있었다.이 문제를 해결하기 위해 자바스크립트는 표준화 작업을 시작했다. 자바스크립트의 표준은 ECMA-262라는 사양으로 정의된다.그리고 이 표준을..
2026.03.11 -
[모던 자바스크립트 Deep Dive] - 1장 정리
1. 프로그래밍과 문제 해결 능력프로그래밍에서 가장 중요한 능력 중 하나는 문제 해결 능력이다.일부 사람들은 문제 해결 능력을 단순히 알고리즘 능력과 동일하게 생각하지만, 실제로는 그보다 더 넓은 개념이다.알고리즘은 문제 해결을 위한 절차나 방법을 의미하지만, 문제 해결 능력은 다음과 같은 과정을 포함한다.문제를 정확하게 이해한다.해결 방법을 설계한다.이를 컴퓨터가 이해할 수 있도록 표현한다.즉, 문제를 분석하고 해결 방안을 설계하는 능력 전체가 문제 해결 능력이다.2. 프로그래밍이란 무엇인가프로그래밍은 결국 다음 과정을 수행하는 것이다.사람이 이해하는 요구사항을컴퓨터가 이해할 수 있는 형태로 변환하는 과정컴퓨터는 사람의 언어를 이해하지 못하기 때문에, 개발자는 요구사항을 프로그래밍 언어로 표현해야 한다..
2026.03.11