IEBlog는 며칠 전 상호 운용성을 달성하는 것이 표준에만 의존하지 않는다는 점을 언급했는데, 이는 사실상의 표준, 즉 표준이 아닌 소위 "사실상 표준"에 대한 몇 가지 고려 사항을 인용한 것입니다. 그러나 모든 사람이 일을 하기 위해 따르는 것입니다.
이러한 사실상의 표준("사실상 표준"이라고도 함)은 특정 사항에 대한 표준이 없을 때 관련 당사자 간의 상호 타협에 의해 형성되는 경우가 많습니다. 흥미롭게도 타협으로 결과적으로 이러한 "사실상 표준"은 표준" 자체는 다른 것과 일치하지 않는 경우가 많으며, 실제로 "표준"이라고 불리는 것은 많은 일이 발생한 후에야 생성되는 경우가 많기 때문에 거의 모든 곳에 "사실상 표준"이 있습니다. "표준"과 "표준"은 느낌이 듭니다. 조금 벗어난 곳.
오랫동안 말도 안 되는 이야기를 하고 나면 이제 본론으로 들어갈 시간입니다.
이 글의 시작 부분에 링크된 블로그 게시물에는 정규식에 대한 문법 문제가 언급되어 있습니다.
"/]/"와 같은 형식은 "]" 자체가 "다음 문자 중 하나와 일치" 구문의 일부이기 때문에 ECMAScript 표준은 이러한 형식을 "잘못된 표현식"으로 표시합니다.” - 하지만 동시에 , 단순한 구성으로 인해 이러한 사용법은 이해에 모호성을 유발하기 쉽지 않으므로 실제로 대부분의 브라우저에서 "유효한" 것으로 간주됩니다.
IE9 개발팀이 처음 새로운 JavaScript 엔진 "Chakra" 테스트를 시작했을 때 원래 잘 실행되던 일부 JavaScript 코드가 "Chakra"에서 실행되지 않는다는 사실을 발견한 이유 중 하나는 원래의 "Chakra"입니다. ECMAScript 표준에 따라 구현되었으며 이전 코드에는 표준에서 유효하지 않은 이와 같은 많은 것들이 포함되어 있습니다. 호환되고 "상호 운용 가능"하려면 "Chakra"가 표준과 일치해야 할 뿐만 아니라 이러한 것을 인식할 수 있어야 합니다. 표현.
이것은 "상호 운용성을 달성하려면 표준 이상의 것이 필요하다"는 좋은 예입니다.
이 외에도 JavaScript에는 다음과 같은 다른 사실상의 표준이 있습니다.
문자열에서 백슬래시 "" 뒤에 개행 표시가 입력되면 [LF] ( 실제 의미) 또는 [CR] ( 실제 의미) 또는 [CR][LF] ( n은 실제로 나타냄) 백슬래시와 함께 완전히 무시됩니다. "무시됨"이라고 말하는 것은 충분히 정확하지 않습니다. 아마도 "이 조합은 여러 줄의 코드에 걸쳐 문자열을 분할하는 것으로 간주됩니다"라고 말해야 할 것입니다.
이렇게 말한 후에도 여전히 이해하기 어렵거나 심지어 설명하기 어렵다면 몇 가지 코드 예제를 통해 이해하는 것이 더 쉬울 것입니다.
예를 들어 다음 코드는