-
Java Script ES5,6 차이TIL 2022. 6. 1. 23:19
(노션에 있던 WIL을 가져오는중 입니다.)
Java Script의 ES란?
ES는 ECMASCRIPT의 약어를 뜻 하고 자바스크립트의 표준,규격을 나타내는 용어이다.
뒤에 숫자가 붙는건 버전을 뜻하는데 ES5(2009년)와 ES6(2015년) 사이에 시간 차이가 있는데
전 ES5에 많은 기능들이 추가 되어 ES6라는 이름으로 새로 나왔다
ES6는 이후에는 매년 업데이트가 되고 있다
ES6+(ES6 이후, 모던 자바스크립트라고 불린다)도 있다.
ES5기능과 ES6에 추가된 기능 차이점
- let, const 변수 키워드
기존의 var 키워드는 함수 레벨 스코프를 가지며 암묵적 재할당이 가능 하였는데
이것의 단점을 보완하기 위해 블록 레벨 스코프를 가지며 재할당이 가능한 let,const라는 키워드가 추가 되었다
※ 스코프(Scope)란?
어떤 변수를 선언할때 그 변수를 사용할 수 있는 유효 범위를 스코프라고 부른다 변수에 접근할 수 있는 범위인것이다.
- var: 함수 단위
- let: block단위 (변수: let으로 선언한 변수는 값이 변할 수는 있다)
- const: block단위 (상수: 한번 선언한 값은 바꿀 수 없다)
※예시 코드
function scope(){ const a = 0; let b = 0; var c = 0; // {} 증괄호 안에 든 내용을 블럭이라고 표현한다. if(a === 0){ const a = 1; let b = 1; var c = 1; console.log(a, b, c); } // 1 1 1 console.log(a, b, c); }// 0 0 1 // var는 함수 단위라서 if문 밖에서 선언한 값이 변했고 // let과 const로 선언한 겂은 if문 안쪽 내용이 바깥 내용에 영향을 끼치지 않는다
- 화살표 함수 (Arrow function)
화살표 함수는 함수를 간결하게 나타낼 수 있다
단, 화살표 함수에는 다른 함수와 다르게 사용 할 수 없는게 있다 ex) this함수
※예시 코드
// ES5 기존 함수 function Name(변수){ 객체 } --------------------------------------- // ES6 화살표 함수 let do_something = (변수) => { 객체 } // 화살표 함수는 return을 사용하지 않아도 되고 // 내장함수 map,filter등을 함계 사용이 가능하다 let arr2 = myArrary.map((item) => item);
- 템플릿 리터럴(Template Literals)
전 ES5에는 문자열을 연결하기 위해 + 연산자를 사용했는데
사용할 필요가 없어지고 템플릿 리터럴은 백틱(``)을 이용하여 문자열 내에 변수를 사용 할 수도 있다
※예시 코드
//ES5 function fun() { return '문자' + name + '연걸'; }console.log(fun('오잉')); // 문자오잉연결 ---------------------------- //ES6 const fun = (name) => { return `'문자${name}연결'` }console,log(fun('오잉')); // 문자오잉연결
- 프로미스(Promises)
프로미스는 비동기 코드를 사용하는 방법이다 API데이터를 가져오거나 실행시 시간이 오래 걸리는 함수를 가져올때 사용 할 수 있다
※예시 코드
const fun = () =>{ return new funPro((resolve,reject) => { resolve('새로운 프로미스 실행'); }); }; console.log(fun()); // funPro{<resolved>:'새로운 프로미스 실행'}
Promises는 2개의 매개 변수가 있다
resolves는 성공했을때 결과를 전달하는거고 reject는 실패했을때 에러를 전다하는 것이다- Spread 연산자(문법)
Spread는 어떤 객체 안에 있는 요소들을 객체 바깥으로 꺼내 준다
※예시 코드
et a1 = [1,2,3] let a2 = [3,4,5] let a3 = […a1,…a2] a3 = [1,2,3,4,5] // ... <- 이 점 3개를 스프레드 문법이라고 부른다. // 배열 안에 있는 항목들(요소들)을 전부 꺼내준다는 뜻이다. // 즉 [...a1]은 a1에 있는 항목을 전부 꺼내 // 새로운 배열([] => 이 껍데기가 새로운 배열을 뜻함)에 넣어주겠다는 뜻이다
'TIL' 카테고리의 다른 글
WebSoket (0) 2022.06.12 다중 이미지 기능 구현 (React,Redux) (0) 2022.06.12 Axios (0) 2022.06.06 리액트 DOM,서버리스 (0) 2022.06.06 Java Script의 매게 변수 간략 개념 정리 (0) 2022.06.03 - let, const 변수 키워드