본문 바로가기

JS

나머지 연산자와 전개 연산자 나머지 연산자 나누기를 했을 때 나머지를 구하는 %와 같은 연산자는 아니다.배열의 일부를 변수에 할당할 때 쓴다. 비구조화 시 나머지 원소들을 다시 배열로 만든다. a에는 1만 들어가고 ...b를 하면 b에는 [2,3,4]가 들어간다.const [a,...b]=[1,2,3,4]console.log(a)console.log(b) 전개 연산자 배열에 있는 원소들을 함수 인자들에 전개시킬 때 사용한다. arr에 있는 원소 1,2,3이 각각 func함수의 x,y,z로 전달된다.function func(x,y,z){ console.log(x) console.log(y) console.log(z)}const arr=[1,2,3];func.apply(null,arr) 객체 전개 객체를 다른 객체에서 전개시킬 수 있다..
var vs let vs const var는 함수 범위이다. 같은 함수 내에서 쓰이면 블럭에 상관 없이 값을 재정의할 수 있다.반면에 let과 const는 같은 블럭 내에서는 재정의가 불가능하다. let과 const는 블럭 범위이다. 그리고 둘 다 선언하기 전에는 사용이 불가능하다. let은 값의 재할당이 가능해서 값 할당 없이 선언만 하고 나중에 값을 할당할 수 있다.반면 const는 재할당이 불가능하기 때문에 값 할당 없이 선언만 하면 오류가 난다. let과 const 모두 다른 블럭에서라면 재선언이 가능하다. 왜냐하면 let과 const 모두 블럭 범위이기 때문에 블럭을 벗어나면, 즉 함수가 종료되면 생명이 끝난다. 예를 들어 A,B 함수가 있다면 A에서 let a, B에서 let a 선언이 가능하다. 마찬가지로 A에서 const a..
타입스크립트 문서 강의 https://ahnheejong.gitbook.io/ts-for-jsdev/01-introducing-typescript/intro
타입스크립트 튜토리얼 namespace 네임스페이스는 연관된 코드를 논리적으로 묶는 방법이다. 변수 선언이 전역 범위로 들어가는 자바스크립트와는 달리 타입스크립트에 내장되어 있다. 동일한 프로젝트 내에서 여러 자바스크립트 파일이 사용되는 경우 동일한 변수를 덮어 쓰거나 잘못 해석할 가능성이 있으므로 자바스크립트에선 "전역 네임스페이스 오염 문제"가 발생한다. 네임스페이스 정의네임스페이스 정의는 namespace 키워드와 이름으로 시작한다.namespace SomeNameSpaceName { export interface ISomeInterfaceName { } export class SomeClassName { } } 네임스페이스 바깥에서 접근해야 하는 클래스 또는 인터페이스는 export 키워드로 표시해야 한다.다른 네임스페이스에서의 클래스..
타입스크립트 튜토리얼 object 객체는 키 값 쌍의 세트를 포함하는 인스턴스다. 값은 스칼라 값 또는 함수 또는 다른 객체의 배열의 될 수 있다. 문법var object_name = { key1: “value1”, //scalar value key2: “value”, key3: function() { //functions }, key4:[“content1”, “content2”] //collection }; 객체 리터럴 표기법var person = { firstname:"Tom", lastname:"Hanks" }; //access the object values console.log(person.firstname) console.log(person.lastname)출력Tom Hanks 타입스크립트 타입 템플릿자바스크립트 에서 객체 리..
타입스크립트 튜토리얼 class 타입스크립트는 객체 지향 자바스크립트다. 타입스크립트는 클래스, 인터페이스와 같은 객체 지향 프로그래밍 특성을 지원한다. 객체 지향 프로그래밍에서 클래스는 객체를 생성하기 위한 청사진이다. 클래스는 객체를 위해 데이터를 캡슐화한다. 타입스크립트는 클래스라는 개념을 지원한다. ES5 이전에는 클래스를 지원하지 않았다. 타입스크립트는 이런 특징을 ES6로부터 얻었다. 클래스 생성class 키워드를 써서 클래스를 선언한다. 문법class class_name { //class scope } 클래스 키워드는 클래스 이름 앞에 온다. 클래스 정의는 다음을 포함할 수 있다.fields : 필드는 클래스 안에서 선언되는 모든 변수다. 필드는 객체에 관련된 데이터를 나타낸다.constructors : 클래스의 객체를 위..
타입스크립트 튜토리얼 인터페이스 interface 인터페이스는 엔티티가 따라야만하는 문법적인 약속이다. 인터페이스는 모든 엔티티가 준수해야하는 문법을 정의한다. 인터페이스는 인터페이스의 구성물인 속성, 메서드, 이벤트를 정의한다. 인터페이스는 오직 구성물의 선언을 포함한다. 구성물을 정의하는 것은 파생 클래스의 책임이다. 파생 클래스가 따르는 표준 구조를 제공하는 데 종종 도움이 된다. 객체를 살펴보면var person = { FirstName:"Tom", LastName:"Hanks", sayHi: ()=>{ return "Hi"} };객체의 시그니처를 보면{ FirstName:string, LastName:string, sayHi()=>string }객체들 간에 시그니처를 재사용하기 위해 인터페이스로 정의할 수 있다. 인터페이스 선언interface..
타입스크립트 union 타입스크립트 1.4는 프로그램에 하나 또는 두개의 타입을 합칠 수 있는 능력을 줬다. union 타입은 여러 타입이 하나가 될 수 있는 값을 표현할 수 있는 강력한 방식이다. 두개 이상의 자료형이 union 타입을 의미하는 파이프 기호 ( | ) 를 써서 합쳐질 수 있다. 다른 말로, union 타입은 수직 바에 의해 나뉘어진 일련의 타입으로 쓰여진다. 문법Type1|Type2|Type3 var val:string|number val = 12 console.log("numeric value of val "+val) val = "This is a string" console.log("string value of val "+val)위 예에서 변수의 타입은 union이다. 변수가 숫자, 문자열을 변수의 값으로..