개발스토리

ES6 본문

node.js

ES6

무루뭉 2020. 12. 3. 17:28

const, let

  • 보통 자바스크립트를 배울 때 var 변수를 선언하는 방법을 배운다. 하지만 var는 이제 const와 let으로 대체된다.
if(true){
    var x = 1;
}
console.log(X); // 1

if(true){
    const y = 1;
}
console.log(y) //Refference error: y is not defined
  • var는 함수 스코프를 가지므로 if문의 블록과 관계없이 접근이 가능하다.

  • const와 let은 블록 스코프를 가지므로 블록 밖에서는 접근할 수 없다.

    • 함수 스코프 대신 블록 스코프를 사용하면서 호이스팅 같은 문제도 해결되고 코드 관리도 수월해진다
    • 호이스팅? 코드에 선언된 변수 및 함수를 코드 상단으로 끌어올리는 것을 말하며 이는 변수 범위가 전역 범위 인지 함수 범위인지에 따라 다르게 수행될 수 있다 -> 혼란을 가져올 수 있다.
  • const는 한 번 값을 할당하면 다른 값 할당이 불가능하다. 또한 초기화할 때 할당을 같이 해주어야 한다.

    • const로 선언한 변수는 상수이다.
  • 변수 선언 시에는 기본적으로 const를 사용하고, 다른 값을 할당해야 하는 상황이 생겼을 때 let을 사용하자

 

템플릿 문자열

  • ES2015 문법에 새로 생겼다.
  • 기존 문자열과 다르게 백틱(`)으로 감싼다. 새로운 점은 문자열 안에 변수를 넣을 수 있는 것이다.
var num1 = 1;
var num2 = 2;
var string1 = '숫자 두 개는' + num1 + '과' + num2 + '이다.'

// 가독성이 좋지 않다. escape 구문이 들어간다면 더 지저분해진다.
const num1 = 1;
const num2 = 2;
const string1 = `숫자 두 개는 ${num1}과 ${num2}이다.`;

//위 코드보다 훨씬 깔끔해진다. ${변수} 형식으로 문자열에 넣을 수 있다.

 

객체 리터럴

<기존>

var sayNode = function(){
    console.log("Node");
};
var es = 'ES';
var oldObject = {
    sayJs : function(){
        console.log("JS");
    },
    sayNode : sayNode,
};

oldObject[es + 6] = 'Good';
oldObject.sayNode(); // Node
oldObject.sayJS(); // JS
console.log(oldObject.ES6) // Good

<변경>

const newObject = {
    sayJS(){
        console.log("JS");
    },
    sayNode,
    [es + 6] : 'Good',
};

newObject.sayNode(); //Node
newObject.sayJS(); //JS
console.log(newObject.ES6); //Good
  • oldObject와 newObject를 비교해보면, 콜론과 function을 더는 붙이지 않아도 된다.
  • 또한 속성명과 변수명이 동일한 경우 한 번만 써도 된다.
    • {name : name, age: age} >> {name, age}

 

 

본 내용은 Node.js 교과서 (길벗 출판사) 개정 2판의 내용을 기반으로 작성되었습니다.

'node.js' 카테고리의 다른 글

ES6(3)  (0) 2020.12.04
ES6(2)  (0) 2020.12.03
서버로서의 노드  (0) 2020.12.02
노드의 개요  (0) 2020.12.01
Node.js , Mongoose 이용한 간단한 CRUD 사이트  (0) 2020.10.02
Comments