논리적 사고

같은 글자 A를 검사했는데 test 결과가 왜 번갈아 바뀔까?

g 플래그 정규식 객체를 재사용하면서 lastIndex의 전후 값을 기록하고, 새 객체·위치 초기화·일반 검사와 비교합니다.

같은 A를 /A/g로 검사할 때 위치 0에서 성공 후 1이 되고 다음 검사 실패 후 0으로 돌아오는 네 단계
같은 A를 /A/g로 검사할 때 위치 0에서 성공 후 1이 되고 다음 검사 실패 후 0으로 돌아오는 네 단계
그림 크게 열기 ↗SVG 저장

그림에서 무엇을 볼까요?

같은 A를 /A/g로 검사할 때 위치 0에서 성공 후 1이 되고 다음 검사 실패 후 0으로 돌아오는 네 단계

가상 자료 카드마다 글자 A가 있는지 검사한다고 합시다. AI가 /A/g 객체를 한 번 만들고 같은 글자 "A"에 test를 반복하면 결과가 참, 거짓, 참, 거짓으로 나올 수 있습니다. 원문 글자가 바뀌어서가 아닙니다. 같은 정규식 객체에 이전 검사의 탐색 위치가 남아 있기 때문입니다.

테스트(test, 일치 여부 검사)는 일치하는 부분이 있으면 true, 없으면 false를 돌려줍니다. g는 글로벌(global, 전체 탐색) 플래그입니다. 이 설정을 가진 정규식 객체는 래스트 인덱스(lastIndex, 다음 탐색을 시작할 위치)를 검사 중 바꿉니다. 활동은 입력과 플래그뿐 아니라 그 위치의 전후 값도 표시합니다.

함께 확인할 점

입력 A·같은 객체 재사용에서 네 호출의 참·거짓과 위치 0·1 변화를 읽습니다. g 없음, 매번 새 객체, 매번 위치 0 초기화를 각각 선택해 결과가 어떻게 바뀌는지 확인합니다. 입력을 ABA로 바꾸고 세 번의 호출 결과를 예측합니다. BBB·빈 문자열도 대조한 뒤 초기화합니다.

생각해 볼 질문

한 번은 참, 한 번은 거짓인 기록을 글자 부재로 설명하기 전에 남겨야 할 실행 상태 세 가지를 쓰세요.

← 논리적 사고 그림 더 보기