반응형
자바스크립트의 구성
JavaScript = ECMAScript + DOM + BOM

 

1. ECMAScript

  • 중구난방스런 자바스크립트의 표준화를 위한 명세서
  • ECMA International이 ECMA-262 기술 규격에 따라 정의하고 있는 표준화된 스크립트 프로그래밍 언어
  • ECMAScript는 스크립트 언어가 준수해야 하는 규칙, 세부 사항 및 지침을 제공

https://www.ecma-international.org/publications-and-standards/standards/ecma-262/

 

ECMA-262 - Ecma International

ECMAScript® 2020 language specification, 11th edition - ECMAScript is a programming language based on several technologies like JavaScript and JScript.

www.ecma-international.org

2. DOM

  • 문서 객체 모델(Document Object Model)
  • XML을 HTML에서 사용할 수 있도록 확장한 애플리케이션 인터페이스
    • 문서를 표현한 트리 생성
    • DOM API 통해 노드(HTML) 조작 가능

3.BOM

  • 브라우저 객체 모델(Browser Object Model)
  • 브라우저 창에 접근하고 조작할 수 있게 하는 인터페이스
    • window, location, navigator, screen, history (쿠키), Ajax 관련 객체 등
  • HTML5에 표준 명세 제정됨

 


에버그린 브라우저(Evergreen Browser)

  • 브라우저가 사용자에게 재설치를 요구하지 않아도, 자동적으로 업데이트할 수 있는 브라우저
  • 브라우저 자동 업데이트에 따라 ECMAScript 호환성이 높아짐
  • IE 제외
    • 트랜스파일러(Transpiler)를 사용해 최신 버전의 ECMAScript를 호환 가능하도록 만듦
  • https://caniuse.com/?search=const 
 

"const" | Can I use... Support tables for HTML5, CSS3, etc

Constraint Validation API API for better control over form field validation. Includes support for `checkValidity()`, `setCustomValidity()`, `reportValidity()` and validation states.

caniuse.com

 


새로운 환경, Node

 


공부 키워드

  • 일급 객체(First-class object) 조건
    • 변수나 데이터 구조에 할당 가능
    • 매개변수로 사용
    • 반환 값으로 사용
    • ex. function
  • 단축 평가(Short-circuit Evaluation)
    • 단순한 true/false의 판단이 아니라 표현식을 수행하고 그 수행 결과를 반환하는 것
    • expr1 && expr2 : expr1의 결과가 Falsy이면 expr1의 결과 반환, 그렇지 않으면 expr2의 결과 반환
      • falsy: undefined, null, 0, false, NaN, ''
    • expr1   ||  expr2 : expr1의 결과가 Truthy이면 expr1의 결과 반환, 그렇지 않으면 expr2의 결과 반환
  • 함수 선언 시
    • 기명 함수 표현식으로 
      • 기명: 디버깅에 유리
      • 함수 표현식: 호이스팅 이슈 제거
        • 호이스팅(hoisting): 자바스크립트 엔진이 코드를 파싱할 때 var키워드와 function을 먼저 코드 상단으로 끌어올려서(hoist) 미리 준비해두는 것, 위에서 순차적으로 읽은 후 재배치 하므로 성능 이슈 발생
      • var add = function add(a, b) {

 

728x90
반응형

'개발 > javascript' 카테고리의 다른 글

[js][IE] inline script [object]  (0) 2023.01.11
[js] 0.07 * 100?  (0) 2023.01.03
[ts] typescript utility type  (0) 2022.07.05
[js][IE] Invalid Date in IE  (0) 2022.04.26

+ Recent posts