얕은 비교 Shallow Compare란? 숫자, 문자열 등 원시 자료형은 값을 비교한다. 배열, 객체 등 참조 자료형 값 혹은 속성을 비교하지 않고, 참조되는 위치를 비교한다. const obj1 = {a : 1, b : 2}; const obj2 = {a : 1, b : 2}; console.log(obj1 === obj2); // fasle obj1과 obj2에 들어있는 값은 같지만, 참조 값을 비교하기 때문에 obj1과 obj2의 참조 값이 달라 false가 반환된다. user = { name : "devbean", surname : "Ohh" } const user = this.state.user; user.name = "hb" console.log(this.state.user === user)..
ES5에서 for문으로만 구성되었던 Array 배열의 분해라면, ES6내에서는 forEach , for ~ of 문을 제공한다. Array - 반복문의 활용 ES5(for loop) var arr = [1,2,3,4]; for( var i = 0 ; i { // 1 console.log(item,index); }); for(let item of arr){ // 2 console.log(item); } 구조 분해 할당 > 배열이나 Json,Object 형태에서 속성을 해제하여서 변수로 할당하는 방식을 의미한다. > 어떤 것을 복사한 이후에 변수로 복사해준다는 의미이다. > 이 과정에서 분해 혹은 파괴되지 않는다는 점이 있다. // 배열 구조 내에서 사용 const arr = [1,2,3]; const [x..
저번 글에는 var let/const 의 차이에 대해서 알아보았다. 이번에는 ES5 ES6의 대표적인 차이 가운데 하나인 화살표 함수에 대해서 알아보려고 한다. 1. 화살 표함수 문법 자바스크립트에선 함수를 아래와 같이 만들어서 사용한다. // 1 function func(){ //blablabla.. } // 2 var func() = function(){ //blablabla.. } func(); 함수는 1 과 2 처럼 만들수 있고 func() ; 이렇게 호출합니다. 하지만 ES6에서 부터는 신 문법을 사용하면 이렇게 만들 수 있습니다. var func = () => { // blablabla.. } function 이라는 길고 복잡한 키워드 대신에 => 이렇게 화살표를 사용해서 함수를 만들어 낼 수..
회사에서 이번년도 신규 프로젝트에 TypeScript 와 ES6 이상의 문법을 무조건적으로 사용하기로 결정했기 때문에 (사실 이전부터 ES6 이상을 사용하고 싶었지만, 제일 큰 고객사인 삼성 전자의 IE 사용 때문에 힘들었다.) 차근차근 ES6에 대해서 알아가 보려고 한다. 처음으로 ES5 와 ES6 의 차이를 생각해보자면 변수 선언의 차이라고 생각이 든다. ES5에서는 모든 변수를 var로 선언했다면 ES6 let 과 const로 나뉘게 된다. ES5를 사용하면서 var 변수만을 사용해 왔는데 var 변수는 단점이 꽤 많이 있다. 대표적으로 나열하자면, 암묵적 결합이 가능 생략 호이스팅 함수 레벨 스코프 위와 같은 단점이 var에 대해서 내가 느낀 단점과, 많은 개발자 분들이 느낀 점이었다. 하나씩 예..