WIL(5/15 ~ 22)

seonghyeon01·2022년 5월 22일
0

항해99

목록 보기
26/33

JavaScript의 ES란 무엇인가?

JavaScript의 ES란 표준 규걱을 의미한다. 이것이 탄생한 배경에는 '브라우저 전쟁'이라고 하는 웹 브라우저 시장에서의 점유율 싸움이 있었다. 넷스케이프 사에서 개발한 Javascript가 선풍적인 인기를 끌기 시작하자 마이크로소프트 사에서도 IE 3(우리가 알고있는 인터넷 익스플로러)에 JScript라는 이름으로 자바스크립트를 탑재했지만, 실제적으로는 둘의 내용이 매우 달라서 같은 기능을 구현하더라도 개발자들이 해야할 일과 시간이 훨씬 늘어나게 되었다.

실제로 서로 사용자를 끌어들이기 위해 이것저것 기능을 추가하다 보니 Javascript와 JScript는 점점 다 달라지는 경향을 보였고, 이에 보다못한 European Computer Manufacturers Association (ECMA, 현 ECMA International)에서 Javascript에 대한 표준을 정하게 되었다.
또, ECMA에서는 Javascript의 표준만 정하는게 아닌 다른 표준안도 정하기 때문에 그것들과 구분하기 위해 숫자를 붙였고 이것이 262가 되었다. 즉, ECMA 262는 자바스크립트의 표준 규격이라고 생각하면 된다. 현재 우리가 ES라고 부르는 것은 ECMA Script의 약자이며, ES6는 ECMA Script 6의 규격을 따른다고 생각하면 된다.

ES5,ES6의 문법차이

  • 변수 선언의 방식
    ES5의 변수 선언시 var는 Function Scope를 사용한다. var는 block scope가 아닌function scope이기 때문에 if 조건문의 block 과는 상관없이 외부에서도 접근이 가능하다. 기존의 var keywork의 scope는 전역범위로 스크립트 파일 어디서나 참조하여 사용이 가능하다. var keyworkd의 장점은 함수 호이스팅이 되기 때문에 var로 생성안하고 그냥 변수로 사용해도 Error없이 생성되어 사용이 가능하였다. 하지만 이러한 경우 스크립트 파일이 많아지거나 길어질 경우 개발자가 의도하지 않게 동일한 변수명에 다른 값을 넣어서 시스템에 문제를 발생시킬수 있는 여지가 있다.
    ES6에서의 변수 선언시 let과 const가 존재하며 이 두가지의 변수 선언에 사용되는 문법은 기존 ES5의 var와 달리 Block Scope를 따른다.
    let : block scope로 일반 변수 생성시 사용 , 중복 선언시 Type Error를 발생시킨다. 장점은 잘못된 변수 사용으로 인해 발생하는 오해의 소지를 줄여주기때문에 정확한 사용으로 생산성이 좋다.
    const : block scope로 JavaScript에서 상수용 변수로 사용된다 , 처음 생성시 초기값을 지정해주어야 한다. 주의할 점은 변수에 담긴 값이 불변이라기보다는 재할당이 불가능하다는 의미이다.

  • 함수 선언 방식의 변경
    ES5의 선언 방식

    function plus (a,b) { return a+b; }
    var plus = function(a,b) { return a+b; }

    ES6의 선언 방식

    let plus = (a,b) => {return a+b}
    
  • 문자열 처리
    ES5 : + 연산자로 항상 이어줘야 했고 길어지면 불편함을 느낄수 있고 복잡하다. 또한 SIngle quotation과 Double quotation을 자유롭게 사용하지 못하고 맞춰서 사용해야 한다
    ES6 : ES6로 넘어오면서 ${}를 통해 한줄로 표현가능하며 Single quotation 과 Double quotation을 자유롭게 사용할 수 있다.

  • 객체의 변화
    ES5의 객체 내부함수에서는 의미없는 function keywork를 항상 적어줘서 함수라는것을 명시해줘야 했습니다.
    하지만 ES6에서는 일반 메서드처럼 name()과 같이 사용할 수있으며 넣고자 하는 변수와 object의 key가 같다면 변수명만 적어주어도 변수명으로 key:value가 생성된다

  • class
    지금까지 자바스크립트는 class가 없었습니다 . 하지만 함수와 객체를 이용하여 class처럼 사용하엿습나다.

5/16 ~ 5/22 회고

저번주에는 알고리즘에 빠지는 시간이였다. 그만큼 알고리즘에 집중하였고, 알고리즘 주차에 목표했던 40문제까지는 풀지 못하였지만 결국 36문제까지만 풀었다. 하지만 꾸준히 할려고 노력을 할 생각이다. 하루에 한 문제라도 풀어야겠다. 그리고 금요일부터 Node.js에 대해 배우기 시작하였고, 백엔드란 무엇인가에 대해 이제 배우기 시작하는 느낌이다.

profile
I want to be programmer

0개의 댓글