새오의 개발 기록

Javascript: ES6와 ES6의 차이 본문

Javascript

Javascript: ES6와 ES6의 차이

새오: 2023. 1. 25. 09:57

ECMAScript

 

  • ES는 ECMAScript
  • Javascript를 뒷받침하는 언어이자 자바스크립트의 표준화를 작업
  • 계속 업데이트 중
  • 언어에 무엇이 포함되고 무엇이 포함되지 않을지를 결정함
  • Javascript는 ECMAScript의 특정 버전
  • ES5에서 ES6 사이에 많은 변화 있었음

 

ES5 이하 ES6 
IE를 포함한 모든 브라우저에서 지원 엣지, 크롬, firefox를 포함한 모던 브라우저에 대한 지원
var만 있고 let과 const 없음 여러 새로운 기능의 도입으로 더 깔끔하고 나은, 빠른 코드 작성이 가능
문법은 ES6와 거의 같으나 없는 기능이 있음 계속 업데이트 중

 

 

 

var vs let vs const

 

var let const
변수 생성 상수 생성
최초의 변수 생성 방법 ES6부터 사용 ES6부터 사용
함수 & 전역 스코프 블록 스코프 블록 스코프
재선언 가능, 재할당 가능 재선언 불가, 재할당 가능 재선언 불가, 재할당 불가
키워드 없이 선언됨    

 

 

 

 

Hoisting

 

Javascript 엔진과 브라우저에서 스크립트를 로드할 때 전체 스크립트를 확인해서 함수를 찾은 뒤 자동으로 들록하고 로드해서

실제 사용하는 코드 아래에 함수를 작성하도록 하는 것

 

 var로 생성한 변수는 이 변수의 선언을 파일의 시작 부분으로 가져오는데 초기화는 그대로 둬서 실제 코드를 작성한 위치에서 값을 할당

let과 const도 마찬가지로 동작하지만 선언만 할 뿐 초기값을 전혀 할당하지 않음 -> 초기화 오류 발생

var는 undefine 의 초기값을 할당 -> 코드를 이해하기 어렵게 하기 때문에 장점이라 하기 어려움

 

 

 

 

엄격 모드 & 읽기 좋은 코드

 

관대한 언어인 자바스크립트에서 안전한 코드를 작성하기 위해 엄격 모드 선언해 사용할 수 있음

 

 

엄격 모드 선언 시

  1. 기존에는 조용히 무시되던 에러들을 throwing함.
  2. JavaScript 엔진의 최적화 작업을 어렵게 만드는 실수들을 바로잡음. 가끔씩 엄격 모드의 코드는 비-엄격 모드의 동일한 코드보다 더 빨리 작동하도록 만들어짐.
  3. 엄격 모드는 ECMAScript의 차기 버전들에서 정의 될 문법을 금지.
    • 키워드 없이 변수 선언해도 선언 됨

 

엄격 모드 활성화 방법

"use strict";

 

'Javascript' 카테고리의 다른 글

Javascript: 코드 실행의 원리(힙, 스택)  (1) 2023.01.25
Javascript: 코드의 분석과 컴파일링  (0) 2023.01.25
Javascript: Math.floor()  (0) 2023.01.19
Javascript: Math.abs()  (0) 2023.01.16
Javascript: Array.fill()  (0) 2023.01.14