WIL- Weekly I Learned (Week 02)
- 자바스크립트란 일종의 체계 메뉴얼 /안내책자/설명문이다.
- 누군가 업데이트를 하면 모든 브라우져에서 작동하게 된다.
- 메뉴얼을 받아 자기들 방식으로 실행이 된다.
- ES5랑 ES6 같이 ES 뒤에 붙은 숫자는 specification의 버전을 나타내는 숫자다.
- 바닐라 자카스크립트는 JavaScript의 한 종류로 Library가 없는것을 의미한다.
- 자바스크립트는 language, ECMAScript는 specification
ES란?
ECMA Script의 약자이며 ECMA-262 기술 규격에 따라 정의하고 있는 표준화된 스크립트 프로그래밍 언어다.
자바스크립트 표준화를 위해 만들어진 자바스크립트의 새로운 이름/버전이다.
ES버전은 매년 버전이 갱신되고 있는데 ES6는 2015년에 만들어졌는데 이때, 자바스크립트에 엄청난 패러다임의 변화가 있어 보통 사람들은 ES6를 기준으로 그 이전 버전은 구버전, ES6부터는 신버전이라고도 한다.
ES5/ES6 문법차이
ES5 버전은 2009년도에 출시되었고 HTML5와 함께 나온 표준안이다.
업데이트된 내용은 JSON,strict,mode, 접근자 프로퍼티(geeter,setter),향상된 배열 조작 기능(forEach, map, filter, reduce, some, every)이 있다.
ES6 버전은 2015년도에 출시되었고 업데이트된 내용은 let, const, class, 화살표 함수, 템플릿 리터럴, 디스트럭처링 할당, spread 문법, rest 파라미터, Symbol, Promis, Map/Set, iterator/generator, module import/export 가 있다.
ES5 와 ES6의 가장 큰 차이가 무엇이냐고 한다면 var / let / const 의 차이라고 말할 수 있다.
변수를 선언하는 방식이 ES5(var) → ES6(let,const) 으로 변경된 것.
Const
상수를 만드는것
변하고 싶지 않은 값들을 만들때 쓰임
호이스팅
안에 있는 변수들을 범위의 최상단으로 끌어올리는것
호이스팅시 변수의 선언과 초기화(undefined)로 같이 시켜버림
let과 var 차이
var
전역변수와 지역변수의 개념이 확실치 않다.
전역변수란?
블럭 밖에서 선언을 한 어디서든 쓰일 수 있는 변수
var a = 2
지역변수란?
중괄호 { } 범위 안에 선언된 변수, 중괄호 안에서만 쓸수 있음
function foo () {
var b = 1
}
console.log(b)를 범위 밖에서 부르면 에러를 일으킴
function foo () {
var b = 1
}
console.log(b)
함수만 지역변수로 호이스팅되고 나머지는 다 전역변수로 올려버림.
let
호이스팅이 되지만 Temporal Death Zone(TDZ) 이라는 개념이 존재한다.
console.log(a)
let a = 2
a 선언문이 나오기 전까지는 a에 접근할 수 없다는게 let과 var의 차이점이다.
a가 선언되고 할당되기 전까지는 a를 쓸 수 없다.
- 자바스크립트는 다른 언어에 비해 관대한 언어라고 생각된다.
'WIL - Weekly I Learned' 카테고리의 다른 글
WIL- Weekly I Learned (Week 03) (0) | 2022.07.31 |
---|---|
WIL- Weekly I Learned (Week 01) (0) | 2022.07.12 |