Javascript 6

화살표 함수 this(arrow function this)

자바스크립트에서 this는 보통 함수를 호출한 주체가 무엇인지에 따라 결정된다. 그리고 함수는 보통 자신만의 this를 갖고 있다. 하지만 화살표 함수만큼은 기존의 this와 다른 점이 있다. 그래서 일반 함수와 화살표 함수에서 this의 다른 점이 무엇인지 정리해보겠다. 화살표 함수는 부모의 this를 받아온다. 일반 함수는 함수를 호출한 주체 또는 자신의 this(즉, 자신을 포함하고 있는 주체. 여기서는 return으로 반환된 객체)를 갖는다. 그래서 일반 함수를 사용하며 부모의 this를 받아오기 위해서 종종 bind 메서드를 활용하게 된다. 하지만 화살표 함수는 부모의 this를 받아오기 위해 bind를 할 필요가 없다. 왜냐하면 이미 부모의 this를 받아오는 것이 화살표 함수이기 때문이다. ..

Javascript 2020.11.11

비교 연산자

자바스크립트에서는 비교 연산자가 2가지가 있다. 1. ==(추상 또는 느슨한 비교) 이 경우 두 개의 변수 타입을 같은 타입으로 변경하여 검사를 진행한다. 그래서 해당 값이 동일한지 아닌지를 비교한다. 예를 들어 const st='3'; const num=3; console.log(st==num); // true console.log(st!=num); //false 같은 자료형으로 맞췄을 경우 같은 값이기에 true가 출력된다. 2. ===(엄격비교) 이 경우에는 타입과 해당 값이 모두 같아야 한다. const st='3'; const num=3; console.log(st===num); // false console.log(st!==num); //true 그러면 객체인 경우의 비교연산자들은 어떻게 되나..

Javascript 2020.10.16

hoisting(호이스팅)

자바스크립트에는 호이스팅이라는 것이 존재한다. 호이스팅이란 어느 위치에 선언되었는지 상관하지 않고 유효 범위의 맨 위로 선언을 끌어올리는 것이다. 이때, 할당 되어있는 부분은 끌어올리지 않고 선언 부분만 끌어올리게 된다. 그래서 선언과 할당이 분리된다고도 한다. 호이스팅이 일어나는 대상으로는 두가지가 있다. 첫째, var 변수 둘째, 함수 이 두가지가 자바스크립트에서 호이스팅이 일어난다. 그러면 var변수부터 살펴보겠다. var hoisting console.log(test); // undefined test=4; console.log(test); //4 var test; 처음에 test변수를 선언하지도 않고 console.log를 통해 출력했는데 undefined가 출력됐다. 에러가 발생하는 상황이라고..

Javascript 2020.10.16

var와 let 그리고 const

자바스크립트에서는 변수를 선언할 수 있는 방법이 3가지가 있다. var와 let, 그리고 const가 있는데 let과 const는 es6문법에 추가된 변수 선언 방법이다. 그렇다면 기존에 var를 내버려두고 왜 추가되었는지 살펴보겠다. var에 대한 문제점 1. hoisting console.log(test); test='테스트'; var test; //console.log 결과값: undefined var test를 맨 밑에 선언했는데 cosole.log(test) 결과는 undefined로 출력된다. (※undefined란 변수가 선언됐지만 값이 할당되지 않았을 때 undefined가 할당된다). 또한, console.log(test); test='테스트'; console.log(test); var ..

Javascript 2020.10.15

자바스크립트 객체

오늘은 객체에 대해 정리해보겠다. 자바스크립트는 일반 정적 언어들(c#, java, c++ 등)과 달리 class를 통해 객체를 생성하지 않아도 된다. ES6부터 class 문법이 추가돼서 class를 통해 객체를 생성할 수 있지만, 자바스크립트는 기본적으로 프로토타입 기반이기 때문에 굳이 class를 사용하지 않아도 된다! 일단 객체를 생성해보겠다. let car={ gear:1, speed:150, name:'m9 car', }; 리터럴 표현으로 객체를 생성해보았다. 객체에 대해 설명하기 앞서 '리터럴'을 설명해보자면, -리터럴이란 소스 코드의 고정된 값을 대표하는 용어다.(위키백과) - 즉, 변수, 상수, 객체 등에 저장되는 값들의 표현 방식이면서 이 코드에서는 car={...} 의 값들을 리터럴로..

Javascript 2020.08.21

데이터 타입

첫 글로 자바스크립트의 데이터 타입에 대해 정리해보겠다. 자바스크립트 데이터 타입은 크게 기본형과 참조형으로 분류할 수 있다. 기본형 기본형에는 Number, String, Boolean, null, undefined, Symbol 타입이 있다. 여기서 Number는 정수형, 부동소수형 상관없이 모두 8byte를 할당한다. 문자열은 글자당 영어는 1byte, 한글은 2byte 가 할당된다. 그래서 문자열에 대해서는 메모리가 가변적이다. 참조형 참조형에는 객체(Object)가 있다. 그리고 객체의 하위로 Array, Function, Date, RegExp, Map/weakMap, Set/WeakSet이 속해있다. 기본형의 특징과 데이터 처리 과정 그렇다면 이러한 데이터들이 자바스크립트에서 어떻게 처리되는..

Javascript 2020.08.19