[2024.01.03 수요일]
1. 개념정리
1) 식별자와 변수의 구분
var i=0;
식별자 = i
변수 = 0
2) 기본형 데이터와 참조형 데이터
기본형 : number, string, boolean, null, ndefined, symbol
참조형 : array, function, data, RegExp, Map, WeakMap, Set, WeakSet
기본형 데이터는 데이터가 1->2로 변하면 주소도 1->2로 변한다. 따라서 1, 2의 데이터가 모두 존재하므로 불변한다.
참조형 데이터는 데이터가 1->2로 변하면 주소는 동일하며 값만 1->2로 변한다.
따라서 1의 데이터가 사라지고 2의 데이터로 변환되므로 데이터가 가변한다.
*참조형 데이터는 원본 데이터의 변화가 발생할 수 있으므로 주의해야 한다.
3) 얕은 복사와 깊은 복사
얕은 복사 : 바로 아래단계의 값을 하나하나 불러내어 할당한 뒤, 새로운 변수로 생성한다.
중첩된 객체의 경우 사용하기 까다롭다.
깊은 복사 : 재귀적 용법으로 반복하여 사용한다. 중첩된 객체도 사용할 수 있다.
*이 부분은 추가 조사하여 첨부하여야 한다.
2. 적용 가능한 메소드 등
함수 (...)은 대괄호를 없애 문자열로 변환한다. args는 추가로 얼마나 많은 연산자가 나올지 모를 때 사용된다.
key값이 맞지 않으면 오류가 발생한다.
얕은 복사. for in 을 사용한다. 문자열의 변수를 하나하나 호출하여 대입한다.
3. 해당 개념의 적용과 중요한 점
1) 식별자와 변수는 서로 다른 영역에 저장된다.
이것은 데이터 길이가 변화되어도 적용이 쉬우면서도 메모리의 관리를 효율적으로 유지하기 위해서다.
2) 참조형 데이터는 별도의 저장공간이 필요하다. 이것이 데이터가 가변하게 만드는 원인이다.
3) 가변하는 데이터들은 원본 데이터가 변경되지 않도록 불변값으로 변환하여 사용한다.
4. 시행착오 및 문제 해결 과정
문제점 : 논리적인 방향은 잡히나, 식별자를 정의하고 삽입하는데 어려움이 있었다.
문제 해결 방향 : 배열의 각 변수를 추출하여 비교하려 하였다.
sort의 function과 유사한 배열을 나타내고 싶었으나 식별자 사용에 어려움이 있었다.
*sort는 function으로 채워주지 않고 빈 항()으로 놔두는 경우 문자열(유니코드)로 변화시킨 후 정렬한다.
문제 해결 과정
1) function은 배열을 변수로 사용할 수 있다.
2) 배열의 길이도 length로 사용할 수 있다. 숫자 나열
3) replace 함수에서 공백으로 대체하면 빈 공간이 남는 것이 아니라 사라진다.
5. 하루 회고
알고리즘을 본격적으로 들어가기 전에 함수의 활용을 좀 더 연습해야 할 필요성이 있다.
모니터를 하나 더 구입해서 양쪽으로 보는것이 좋겠다.