반응형
왜 이 "Hello, World!" 자바스크립트 코드 조각이 허용 가능한 프로그램 명령어로 인식됩니까?
최근 한 동료가 다음 자바스크립트 코드 조각을 보여주었습니다.
greet = "".toString.bind("hello world!")
이것을 개발자 콘솔에 붙여넣고 실행하면 "Hello, World!" 메시지가 인쇄됩니다.
>> console.log(greet())
hello, world!
또 다른 흥미로운 점은 같은 것을 붙이면greet
Node.js REPL 내부의 코드는 자동으로 "읽기 가능한" 형식으로 변환됩니다.
이것은 어떻게 작동합니까?브라우저에서 이 동작이 가능한 이유와 Node.js가 자동으로 포맷하는 이유는 무엇입니까?
실제 코드는 다음과 같습니다.
greet = "...".toString.bind("hello world!")
어디서...
문자열 리터럴에는 바이트가 있습니다.E2 80 AE
오른쪽에서 왼쪽으로 재정의하는 유니코드 문자로, 유니코드 이후의 모든 내용이 반대로 표시됩니다.아랍어나 히브리어 같은 오른쪽에서 왼쪽으로 쓰는 데 사용됩니다.
텍스트를 반전시키는 숨겨진 문자가 있습니다.여기에서 원시 문자를 볼 수 있습니다. https://www.soscisurvey.de/tools/view-chars.php
언급URL : https://stackoverflow.com/questions/59837318/why-is-this-hello-world-javascript-code-fragment-recognized-as-an-acceptable
반응형
'programing' 카테고리의 다른 글
명령줄을 통해 일시적으로 MySQL을 읽기 전용으로 설정하려면 어떻게 해야 합니까? (0) | 2023.07.26 |
---|---|
활동의 내용 보기를 가져오는 방법은 무엇입니까? (0) | 2023.07.26 |
PARTITION BY 1은 무엇을 의미합니까? (0) | 2023.07.26 |
((보이드(*)0x1000)();'는 무슨 뜻입니까? (0) | 2023.07.26 |
JSON을 쓸 수 없습니다. 역할 컬렉션을 게으르게 초기화하지 못했습니다. (0) | 2023.07.26 |