728x90
모든 브라우저는 자바스크립트를 해석하고 실행할 수 있는 자바스크립트 엔진을 내장하고 있다. 브라우저 뿐만 아니라 Node.js도 자바스크립트 엔진을 내장하고 있다. 따라서 자바스크립트는 브라우저 또는 Node.js에서 실행할 수 있다.
하지만 브라우저와 Node.js는 용도가 다르다. 브라우저는 웹페이즈를 브라우저 화면에 렌더링하는 것이 주된 목적이지만 Node.js는 브라우저 외부에서 자바스크립트 실행 환경을 제공하는 것이 주된 목적이다. 따라서 둘다 ECMAScript를 실행할 수 있지만 브라우저와 Node.js에서 ECMAScript 이외에 추가로 제공하는 기능은 호환되지 않는다.
예를 들어 파싱된 HTML element를 선택하거나 조작하는 기능은 DOM API는 브라우저는 활용가능하지만 Node.js를 불가능하다. 브라우저 외부 환경에서 굳이 HTML을 직접 다룰 필요가 없기 때문이다.
반대로 Node.js에서는 파일을 생성하고 수정할 수 있는 파일 시스템을 기본 제공하지만 브라우저는 이를 지원하지 않는다. 브라우저를 통해 실행되는 자바스크립트가 사용자 컴퓨터의 로컬 파일을 삭제하거나 수정하고 생성할 수 있다면 악성코드에 그대로 노출된 거나 마찬가지이기 때문에 보안상의 이유로 브라우저 환경에서는 파일 시스템을 제공하지 않는다.
웹 브라우저는 크롬을 쓰자. 점유율도 높고 ECMAScript 사양도 제일 잘 준수하고 있다.
728x90
'웹 > Javascript' 카테고리의 다른 글
자바스크립트 딥 다이브 스터디 5장 - 표현식과 문 (0) | 2023.06.29 |
---|---|
자바스크립트 딥 다이브 스터디 4장 - 변수 (0) | 2023.06.27 |
자바스크립트 딥 다이브 스터디 2장 - 자바스크립트란? (0) | 2023.06.22 |
자바스크립트 딥 다이브 스터디 1장 - 프로그래밍 (0) | 2023.06.22 |
React - 유효성 검사 로직 만들기 + custom hook (0) | 2022.07.19 |