javascript es6 기초 배우기 001 - var, let, const, String Literal

1 분 소요

var, let, const

  • javascript에서 쓰이는 var 변수는 유연하지만 여러면에서 문제점이 있음

var

  • var의 스코프는 function
// function 내부의 hello가 먼저 실행되고, 이후에 바깥의 hello가 실행됨
var hello = 'world';

function test() {
  var hello = 'korea';
  console.log(hello);
}
test();
console.log(hello);
/* result
korea
world
*/
// 외부의 hello를 덮어버림
var hello = 'world';
if(true) {
  var hello = 'korea';
  console.log(hello);
}
console.log(hello);
/* result
korea
korea
*/
  • 변수 재선언이 가능
// 같은 이름의 변수를 중복 선언됨
var hello = 'world';
var hello = 'korea';
console.log(hello);
/* result
korea
*/

let

  • let은 변수를 선언한 block에서만 유효함
let hello = 'world';
if(true) {
  let hello = 'korea';
  console.log(hello);
}
console.log(hello);
/* result
korea
world
*/

const

  • const 역시 변수를 선언한 block에서만 유효함
  • const는 변수의 값을 변경할 수 없음
const num = 5;
num = 6;
console.log(num);
/* Result
ERROR
*/
  • 객체나 배열로 선언된 const는 값을 변경 가능
const drinks = {};
drinks.caffe = 'latte';
drinks.lemon = 'ade';
console.log(drinks);
/* Result
{ 
  caffe:'latte', 
  lemon:'ade'
}
*/

const arr = [ 1, 2, 3, 4, 5 ];
arr[0] = 100;
arr[4] = 500;
console.log(arr);
/* Result
[ 100, 2, 3, 4, 500 ]
*/

String Literal

  • 백틱(``)을 이용해서 String을 연결가능
const val01 = 'Hello';
const val02 = 'World';
const val03 = val01 + ' ' + val02 + '!!!!!';
console.log(val03);
/* Result
Hello World!!!!!
*/

const litVal = `${val01} ${val02}!!!!!`;
console.log(litVal);
/* Result
Hello World!!!!!
*/

참고