js
-
[TS] 타입스크립트란?간단정리 2020. 7. 15. 10:40
개요 타입스크립트는 마이크로소프트에서 개발하고 관리하는 오픈소스 프로그래밍 언어이며, 자바스크립트의 상위 조합이고 최산 ECMA스크립트를 따른다. 타입스크립트는 ECMA스크립트를 따르기 때문에, 자바스크립트의 특성을 침범하지 않고 최신 ECMA 표준을 지원한다. (ECMA) 자바스크립트를 보완하여 변수나 함수 등에 명시적으로 타입을 추가할 수 있게 타입 안정성을 높였고, 모듈화, 객체지향 프로그래밍 지원, 도구 지원등을 해준다. 특징 * 자바스크립트는 동적 타이핑 언어로 컴파일에 시간을 들이지 않고, 동적 타이핑을 수행하기 때문에 런타임시 속도가 빠르다. * 타입스크립트는 정적 타이핑 언어로 컴파일에 시간이 들지만, 컴파일 이후 동작은 자바스크립트와 같다. 위와 같은 이유로 단순히 타입스크립트는 속도가 ..
-
[JS] 메소드와 함수간단정리 2020. 7. 11. 23:21
[스포] * 메소드와 함수의 차이는 정의의 차이다. * 화살표 함수, 일반 함수 모두 객체 안에 정의 되면 메소드가 맞다. * 화살표 함수는 고유한 this가 없어, this는 객체 외부 함수로 지정된다. [정의] * function (함수)는 그 자체로도 기능을 한다. - 함수는 매소드를 포함한 더 포괄적인 개념이다. - fucntion(); 으로 호출 할 수 있다. * method (메소드)는 객체 안에 존재 하며, 객체안에서 작동 한다. - 메소드는 클래스 안에 있는 data를 조작할 수 있다. - object.method(); 로 호출 할 수 있다. function func() { return "Call me function!"; } var obj = { method() { return "Call..
-
[JS] 화살표 함수 (Arrow Function)간단정리 2020. 7. 10. 09:18
약 2년전, Javascript를 처음 접할 때 Arrow Function이 그냥 함수를 정의할 때. 꼭 써야하는 문법이라고 생각했다. 난 시작 부터 ECMAScript2015(ES6) 가 있었기 때문이다. (왜 2015가 6가 되는진 모르겠다.) JS에 대해서 조금 알게 되고, 실제 제품을 만들 때 '굳이 화살표 함수를 써야하나?' 생각이 들었다. 도대체 이게 왜 나왔고, 무엇이 편리한지 알아보자. [스포] (1) function에 비해 구문이 짧고 (2) this, arguments, super 또는 new.target을 바인딩 하지 않는다. 1. function에 비해 구문이 짧다. // ES5 var foo = function () { console.log("foo") }; // foo // ES..
-
[JS] 암묵적(Implicit), 명시적(Explicit) 형변환간단정리 2020. 7. 9. 09:18
대부분의 언어에서 형변환이 존재한다. 직접 한땀한땀 변경하는 방법과 자동으로 변경하는 방법 정도로 생가하면 좋을 것 같다. 분명 한 것은 한땀한땀 변경하는 것을 모두가 추천할 것이다. 암묵적 타입 변환(Implicit Coercion) * 자바스크립트의 강점이기도 하지만, 가장 피해야할 기능이기도 하다. 자바스크립트는 느슨한 언어이기에 var는 어떤 타입이든 자동적으로 변경 된다. 1 + "Ryuk" // 1Ryuk : string 1 + "2" + 3 // 121 : string 1 + 2 + "3" // 33 : string 2 * "2" // 4 : number 1 + true // 2 : number 1 + false // 1 : number 예제가 더 보고 싶다면 (링크) * 위와 같은 기괴한 ..
-
[JS] 원시타입 || 기본 자료형 (Primitive Type)간단정리 2020. 7. 8. 10:11
Javascript에서는 원시 타입(Primitive Type)과 참조 타입(Reference Type) 두 가지 자료형을 제공한다. 자바스크립트는 느슨한 타입 언어 || 동적 언어이다. 이 말은 변수의 타입을 미리 지정할 필요가 없다는 의미이다. 타입은 프로그램이 처리되는 과정에서 자동으로 파악되고, 같은 변수에 여러 타입의 값을 넣을 수 있다는 뜻이다. * 그렇기 때문에 프로그램 규모가 커질 수록, Typescript와 같은 대체제를 사용한다. (타입에 따른 실수를 방지 하기 위한 방법이자 도구이다.) var test; // undefined test = null; // null test = 1206; // Number test = "Ryuk"; // String test = true; // Bool..
-
[JS] 유형 비교 `==`와 엄격한 비교 `===`의 차이점간단정리 2020. 7. 7. 23:23
결론 : == 유형 비교는 값만 비교, === 엄격한 비교는 타입도 비교 (1) 0은 false, 그 외 모든 것은 true이다. // 유형 비교는 값만 비교한다. // 0은 false 이기에 true가 된다. // 엄격한 비교는 타입도 비교한다. // number인 0과 false인 boolean은 타입이 다르다. 0 == false // true 0 === false // false(2) number와 string 또한, (1)과 같은 결과가 출력 된다. 1206 == "1206" // true 1206 === "1206" // false(3) null undefined 비교 null == undefined // true null === undefined // false(4) NaN 이 친구는 역시 ..
-
[JS] undefined / null / NaN 차이점간단정리 2020. 7. 7. 23:04
undefined : 선언은 되었으나 값이 할당 되지 않은 상태 (초기화 안하면 무조건 undefined 상태) var temp; Boolean(undefined) 에서는 false Number(undefined) 에서는 NaN String(undefined) 에서는 "undefined" null : 아무런 값도 나타내지 않는 특수한 값 (초기화 해주어야 null 상태가 존재 할 수 있음) var temp = null; C++ 에서는 포인터형 변수가 아무 것도 가르키지 않을 때 nullptr이 된다. (null은 0이 래핑 되어있다.) null의 타입은 null이다. 하지만, typeof로 출력 되는 값은 object 이다. 이는, 코드가 업데이트 되지 않은채 많은 시간이 흘렀기 때문이라고 한다. (링크..