백준에서 문제를 풀어보던 중 변수를 비교할 때 = 를 쓰면 에러가 나는 걸 발견하고 이 내용에 대해 정리해야지 싶었다. 아 그리고 python 에는 swith / case 문이 없다,, if/elif/else문을 쓰도록,,, =과 == 차이 list1 = [a, b, c] list2 = [a, b, c] list1 == list2 >>> True a,b = 100,200 print(a==b, a!=b, a>b , a=b, a>> False True False True False True =은 대입연산자로, 우항에 있는 피연산자를 좌항의 피연산자에 대입한다. = 오른쪽의 긴 함수를 왼쪽의 짧은 이름으로 부르고 싶어 변수로 설정할 때에 많이 쓴다. ==는 비교 연산자이다. 두 객체(변수)의 값이 같은지 다른..
전체 글
피어나는 프론트엔드 개발자 이도이입니다. 방문해주셔서 감사합니다🌱
[key:string] Words 타입이 string만을 속성으로 가지는 객체라는 것을 말한다. [key:number] 도 될 수 있다. 그러면 "potato" 가 에러가 난다. [key:string] 이 형식(객체)은 제한된 양의 속성만 가질 수 있다. 속성에 대해서 미리 알지 못하지만 타입을 미리 알고 있을 때 쓰면 된다. 클래스를 타입처럼 활용하는 것이 가능하다.!! 이런식의 지정된 특정 값을 갖는 type을 사용하는 것도 가능하다! interfaces 인터페이스는 오브젝트를 설명하는 또다른 방법이다. type -> interface로 바꿔도 에러가 나지 않는다. typescript에서 object의 모양을 알려주는 방식 2가지가 type과 interface이다. 하지만 interface는 오직 o..

private 키워드는 오직 typescript에서 보호해주기 위해서 사용한다. / 따로 설정이 안해주면 기본적으로는 모두 public이다. abstract : 추상클래스는 다른 클래스가 상속 받을 수 있는 클래스이다. 하지만 직접 새로운 인스턴스를 만들 수는 없다 타입스크립트는 추상클래스의 인스턴스를 만들 수 없다고 경고한다. 상속 받은 자식클래스에서는 부모 메소드를 사용할 수 있다. 자바스크립트에서는 abstract이 전혀 언급되지 않는다. 추상 메소드를 만들려면 메소드를 클래스 안에서 구현하면 안다. 추상클래스 안에서는 추상 메소드를 만들 수 있는데 추상 메소드 안에는 메소드를 구현하면 안되고 call signature만 적어둬야 한다. 추상메소드(코드가 없는 메소드)는 추상 클래스를 상속 받는 모..

다형성은 무엇인가? 다형성(polymorphism)이라는 단어는 원래 '여러 개의 형태를 갖는다'라는 의미이다. poly(하나 이상), morph(형태)가 합성된 단어로 '하나 이상의 형태'를 뜻한다 concrete type number , boolean, string,void형 같은 타입 type SuperPrint = { (arr:number[]):void (arr:string[]):void (arr:boolean[]):void (arr: (number | boolean)[]):void } const superprint:SuperPrint = (arr) =>{ arr.forEach(i => console.log(i) ) } superprint([1,2,3,4]) superprint([true, fal..

Call Signatures type Add = (a:number, b:number) => number //함수의 리턴값의 type이 number이다! function의 type을 정해두는 것! type Add = { (a:number, b:number) : number } 위의 코드와 같은 유형 오버로딩은 함수가 여러개의 call signatures를 가지고 있을 때 발생시킨다. Overloading 한 클래스에 이름이 동일한 메서드가 중복 정의되어 있는 경우를 메서드 오버로딩(overloading)이라 한다. 또 다른 예 // call signatures 파라미터의 타입 다른 예 type Add = { (a:number, b:number) : number (a:number, b:string) : nu..

age? const player : { name:string, age? :number } = { name:"doyi" } typescript는 선택적 변수(optional parameter)를 지정할 수 있게 한다. type type Player = { name:Name, age?:number } typescript 는 객체의 타입을 따로 지정할 수 있다. const doyi : Player = { name:"doyi", age:23 } 이런식으로 응용이 가능하다! readonly type people = { readonly name:Name, age?:number } const peoplean = (name:string) : people => ({name}) const c = peoplean("sss"..

타입스크립트(TypeScript)란? 타입 스크립트는 자바스크립의 단점을 보완하기 위해 만든 언어이다. 뛰어난 타입 안정성 때문에 런타입에러도 줄게되고 생산성도 늘어나 전반적으로 자바스크립트보다 코드에 버그가 엄청 줄게 된다!! 자바스크립트에서는 이런식으로 타입이 같지 않음에도 에러가 나는게 아니라 이상한 코드를 출력한다. 마찬가지로 a,b 라는 숫자 2개를 보내지 않았음에도 코드는 실행되고 있다. 이것또한 에러가 나긴했지만 코드가 실행되고 나서 발생하는 에러이다. 제일 좋은 방식은 코드가 실행되기 전에 hello() 라는 메소드를 doyi라는 객체가 가지고 있지 않다는 것을 알려주는 것이다. 타입스크립트(TypeScript) 시작하기 일반 HTML CSS JS 개발 1. node 설치하기 https:/..

Routing 이란?? 사용자가 요청한 URL에 따라 해당 URL에 맞는 페이지를 보여주는 것 리액트는 SPA (Single Page Application) 방식 - 기존 웹 페이지 처럼(MPA 방식) 여러개의 페이지를 사용, 새로운 페이지를 로드하는 방식이 아니다. - 새로운 페이지를 로드하지 않고 하나의 페이지 안에서 필요한 데이터만 가져오는 형태를 가진다. React-Router는 신규 페이지를 불러오지 않는 상황에서 각각의 url에 따라 선택된 데이터를 하나의 페이지에서 렌더링 해주는 라이브러리 라고 볼 수 있다. ※ 그렇다면 a태그가 있는데 왜 굳이 라우터를 따로 정의하고 사용할까? -> SPA 사용자 경험 향상의 목적이다. 그냥 a 태그를 사용하면 페이지 전체가 새로 로딩된다. 흔히 말하는 화..