참고: 이웅모 《모던 자바스크립트 Deep Dive》 3장
같은 자바스크립트라도 실행 환경(브라우저 vs Node)이 다르면 쓸 수 있는 API가 다르고, 개발자 도구·REPL·에디터로 실행·디버깅 루프를 만든다.
JS 엔진(예: V8)은 코드를 파싱·실행한다. 그 위에 호스트가 API를 얹는다. 그래서 문법은 같은데 document가 없다는 상황이 Node에서 흔하다.
브라우저에서는 script 태그 또는 모듈로 로드하고, 콘솔에서 바로 실험할 수 있다. 디버깅은 브레이크포인트·스코프·콜스택을 Sources에서 보는 게 핵심이다.
Node는 설치 후 node file.js 또는 REPL로 실행한다. npm은 패키지 관리 도구로, 프로젝트 의존성을 붙일 때 쓴다.
const add = (a, b) => a + b;
console.log(add(2, 3));
const isBrowser = typeof window !== 'undefined';
const isNode = typeof process !== 'undefined' && process.versions?.node;
console.log({ isBrowser, isNode });