IEBlog は数日前、相互運用性の達成は標準のみに依存しているわけではないと言及し、事実上の標準、いわゆる「事実上の標準」、つまり標準ではない、についてのいくつかの考慮事項を挙げました。しかし、何かをするために誰もが従うものです。
これらの事実上の標準 (「事実上の標準」とも書かれます) は、特定のものに対する標準がない場合に、関係者間の相互妥協によって形成されることがよくあります。興味深いことに、妥協として、これらの「事実上の標準」が形成されます。 「標準」自体が他のものと矛盾していることも多く、本当に「標準」と呼ばれるものは、多くのことが起こった後に初めて生み出されることが多いため、ほとんどの場所に「事実上の標準」が存在します。少し場違いです。
長い間くだらない話をした後、本題に入ります:
この記事の冒頭にリンクされているブログ投稿では、正規表現に関する文法上の問題について言及しています。
「/]/」のような形式。「]」自体は「これらの文字のいずれかに一致する」構文の一部であるため、ECMAScript 標準ではそのような形式を「無効な式」としてマークします。 、その単純な構成により、このような使用法は理解の曖昧さを引き起こしにくく、実際、ほとんどのブラウザーで「有効」であると考えられています。
IE9 開発チームが最初に新しい JavaScript エンジン「Chakra」のテストを開始したとき、当初は正常に動作していた一部の JavaScript コードが「Chakra」では実行できないことが判明しました。その理由の 1 つは、オリジナルの「Chakra」です。 ECMAScript 標準に従って実装されており、古いコードにはこのように標準では無効なものが多く含まれています。互換性と「相互運用性」を実現するには、「Chakra」は標準と一致しているだけでなく、そのようなものを認識できる必要があります。表現。
これは、「相互運用性の実現には標準規格だけでは不十分である」ことを示す好例です。
これに加えて、JavaScript には次のような事実上の標準がいくつかあります。
文字列内でバックスラッシュ「」の後に改行マークが入っている場合は、[LF]( 実際の意味)、または [CR] ( 実際の意味)、または [CR][LF] ( n は実際にはを表します)、バックスラッシュとともに完全に無視されます。「無視される」という言い方は十分正確ではありません。「この組み合わせは、コードの複数行にまたがる文字列の分割とみなされます」と言うべきかもしれません。
これを言ってもまだ理解するのが難しい (または説明できない) 場合は、いくつかのコード例を参照すると理解しやすいはずです。
たとえば、次のコード: