처음에 엥? 이렇게 쉬운걸??이라고 생각했지만 오히려 함정이 있었다.
정말 간단하지만 쉽게 간과하여 넘어갔던 부분이 있었다는 것을..!
너무나 간단하게도
console.log(!@#$%^&*(\'"<>?:;);
이런식으로 전부 다 출력하면 되는 거 아닌가?라고 생각했는데
실행한 결괏값!@#$%^&*('"<>?:;이 기댓값!@#$%^&*(\'"<>?:;과 다릅니다.
라는 결과가 나와서 확인했더니 \ << 이문자는 단일로쓰면 생략이 된다는 것이었다..!
자바스크립트에서 역슬래시 (\)는 이스케이프 문자 라고한다,
그럼 어떻게 출력하느냐? 궁금해서 검색해 봤더니 '\'를 출력하고 싶을 땐 '\\' 이런 식으로 2개를 사용해서 출력해야 한다는 것을 알게 되었다.
❓궁금증
그러면 '\\' 두개를 연속으로 출력하고 싶을 땐 어떻게 하나 궁금증이 생기게 되었다. 단순하게도 그냥 '\\' 당 '\'한개기 때문에 역슬래쉬 4개를 사용하면 된다는 것..!
console.log("\\\\"); // → 출력: \\
📝최종 풀이
rl.on('close', function () {
console.log(`!@#$%^&*(\\'"<>?:;`);
});
문자열을 사용하기 위해서 따옴표에서 백틱 (`)을 사용한다.
'\'가 escape 문자로 사라지지 않게 하기 위해서
'\'를 하나 더 추가하여 온전히 '\'가 출력되도록 한다.