본문 바로가기
TIL&WIL

241106 TIL - 깊은복사이해하기, RegExp

by 나노다 2024. 11. 6.

깊은 복사 함수 이해하기

/* 깊은 복사 함수 */
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) 

 리터럴 표기법으로 생성

참조 : https://poiemaweb.com/js-regexp

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를 반환한다는 차이가 있음