본문 바로가기

JS30

객체 타입체크 목차1. 타입 체크 하기2. 왜 해야할까?1. 타입 체크 하기 타입스크립트는 각 데이터를 담는 변수에 타입을 지정한다. 원시 타입의 데이터를 담는 변수는 타입 지정이 쉽지만 속성을 여러 속성을 가지고 있는 객체는 어떻게 타입을 지정해야 할까?1) type 키워드 사용type은 타입을 지정하는 키워드로 모든 타입을 지정할 수 있고 중복이 되지 않는다는 특징이 있다. type 타입명 = { 속성1 : 타입, 속성2 : 타입}const 객체 : 타입명 ={ 속성1 = 값, 속성2 = 값}ex)type userType = { name : string}const user : userType ={ name = '홍길동' }다만 type.. 2024. 5. 2.
메모이제이션 목차1. 메모이제이션이란?2. 메모이제이션을 사용한 피보나치1. 메모이제이션이란?동일한 계산을 할 경우 이전에 계산된 결과를 객체를 통해 메모리에 저장시켜 성능을 개선시키는 프로그래밍 기술 2. 메모이제이션을 사용한 피보나치피보나치는 이전의 값과 현재 값의 합이 다음 번째 결과가 되기를 인덱스가 증가하면서 반복하는 수열을 말한다.이전의 값 => 1현재의 값 => 1다음의 값 => 21 1 2 3  5 8 13 18 ...1+1 = 21+2 = 32+3 = 53+5 = 8이러한 피보나치 수열을 재귀함수를 통해 구현할 수 있는데 문제는 수가 커질수록 반복하는 연산이 많아져 메모리를 많이 사용하게 되어 인덱스가 커질수록 시간이 느려지고 프로그램이 멈출 수 있다.  1) 피보나치 구현f.. 2024. 5. 1.
객체에 관해 목차1. 객체란?2. 객체 사용법3. 객체를 사용하는 이유1. 객체란?속성이라는 연관된 여러 데이터들을 가지고 있는 참조 타입의 데이터 객체지향 프로그래밍에서 중요한 개념으로 여러 속성(key)과 속성에 대한 값(value)를 가지고 있는 참조형 데이터이다. 2. 객체 사용법1) 선언리터럴 사용const 객체명 = { 속성명1:속성값1, 속성명2:속성값2, 메서드1(인자값){ //메서드 호출시 실행할 코드 }}//ex)//객체생성const person = { name:'홍길동', myMethod(){ console.log(this.name); }}생성자 함수 사용fucntion 생성자함수명(매개변수1, 매개변수2){ this.속성1 = 매개변.. 2024. 4. 30.
얕은 복사 vs 깊은 복사 목차1. 얕은 복사2. 깊은 복사3. 뭐가 더 좋을까?1. 얕은 복사하나의 데이터에 대한 주소를 다른 변수가 공유하는 형태참조타입의 데이터를 다룰 때 변수에 할당된 데이터의 주소를 통해 값을 가져오거나 변경을 한다. 그런데 때에 따라 같은 값의 데이터를 다룰때 또 다른 변수를 하나 생성하여 같은 주소를 할당하는 것이 얕은 복사다. 주로 단순 데이터 전달데이터 전달하는 것과 같이 원본이 수정되더라도 상관없을 때 사용된다.예제를 통해 얕은 복사를 확인해보자.const arr1 = [1,2,3];const arr2 = arr1;console.log(arr1); //1,2,3console.log(arr2); //1,2,3arr2.push(4);console.log(arr1); //1,2,3,4console.lo.. 2024. 4. 29.