자바스크립트는 웹 브라우저에서 실행될 수 있는 언어로 페이지가 어떻게 동작할지 제어한다.

자바스크립트는 인터프리터 언어이기 때문에, 컴파일 언어인 자바와는 차이가 있다.

엔진의 작동원리

  1. 엔진(브라우저라면 내장 엔진)이 스크립트를 읽습니다(파싱).
  2. 읽어 들인 스크립트를 기계어로 전환합니다(컴파일).
  3. 기계어로 전환된 코드가 실행됩니다. 기계어로 전환되었기 때문에 실행 속도가 빠릅니다.

자바스크립트는 메모리나 CPU 같은 저수준 영역의 조작을 허용하지 않습니다. 애초에 이러한 접근이 필요치 않은 브라우저를 대상으로 만든 언어이기 때문이죠.

위에서 말했듯이 브라우저에서는 보안을 위해 시스템의 파일에 접근하거나 카메라, 마이크 같은 디바이스와 상호 작용을 하려면 허가를 받아야한다. 브라우저의 탭과 창도 서로 격리되어 있다. 특수한 상황으로 한 창에서 다른 창을 열때는 예외이다. 이때도 도메인, 포트등을 철저히 검증한다.

• 웹 페이지에 자바스크립트 코드를 추가하기 위해 <script> 태그를 사용합니다.

스크립트를 별도의 파일에 작성하면 브라우저가 스크립트를 다운받아 캐시(cache)에 저장하기 때문에, 성능상의 이점이 있습니다.

src 속성이 있으면 태그 내부의 코드는 무시됩니다.

<script> 태그는 src 속성과 내부 코드를 동시에 가지지 못합니다.

Screen Shot 2023-07-11 at 5.18.59 PM.png

자바스크립트에선 null을 ‘존재하지 않는(nothing)’ 값, ‘비어 있는(empty)’ 값, ‘알 수 없는(unknown)’ 값을 나타내는 데 사용합니다.

undefined 값도 null 값처럼 자신만의 자료형을 형성합니다.

undefined는 '값이 할당되지 않은 상태’를 나타낼 때 사용합니다.

변수는 선언했지만, 값을 할당하지 않았다면 해당 변수에 undefined가 자동으로 할당됩니다.

변수에 undefined를 명시적으로 할당하는 것도 가능하긴 합니다.

let age = 100;
age = undefined;

객체와 심볼

객체(object)형은 특수한 자료형입니다.