깊은 복사 함수 이해하기
/* 깊은 복사 함수 */
let deepCopy_obj = function(key) {
let result = {};
// 상위 객체의 프로퍼티가 참조형 데이터고 값이 비어있지 않으면
if (typeof key === 'object' && key !== null) {
// 하위 객체의 프로퍼티에 접근해 복사하는데 만약 또 하하위객체가 있으면 재귀 실행
for (let lower_key in key) {
result[lower_key] = deepCopy_obj(key[lower_key]);
}
} else {
// 상위 객체의 프로퍼티가 기본형 데이터면 그냥 복사
result = key;
}
// 깊은 복사 완료된 객체 반환
return result;
}
참조형 데이터 RegExp
뭔가 했는데 정규식 말하는 거였다...
1) 정규표현식 (Regular Expression)
리터럴 표기법으로 생성
2) 플래그
- i : Ignore Case, 대소문자 구별 않고 검색
- g : Global, 문자열 내 모든 패턴을 검색
- m : Multi Line, 문자열의 행이 바뀌더라도 계속 검색
3) RegExp Constructor
/* 생성 기본 구조 */
new RegExp(패턴,플래그);
/* 예시 */
new RegExp("ab+c", "i");
new RegExp(/ab+c/, "i");
new RegExp(/ab+c/i);
// 셋 모두 정규식 /ab+c/i을 생성
4) 관련 메서드
- RegExp.prototype.exec() : 문자열에 정규식을 적용해 매칭 결과를 얻음. 정규식에 부합하는 문자열을 배열로 반환하거나, 부합하는 부분이 없으면 null을 반환
- RegExp.prototype.test() : 마찬가지로 문자열에 정규식 적용해 매칭 결과 얻음. 다만 부합하는 부분이 있으면 true를 반환하고, 없으면 false를 반환한다는 차이가 있음
'TIL&WIL' 카테고리의 다른 글
241108 TIL - map() 복습, join(), Math.trunc, indexOf(), iterable, array-like (0) | 2024.11.08 |
---|---|
241107 TIL (0) | 2024.11.07 |
241105 TIL - 코드리뷰시 깃헙활용, 함수선언방식, localeCompare(), 코드블럭{}, default export, named export, 팩토리함수, 클로져 (1) | 2024.11.05 |
241104 TIL - 전개구문, split(), sort(), assign() (0) | 2024.11.04 |
241101 TIL - node.js 설치.... (2) | 2024.11.01 |