非常に簡単に言えば、変数に 1 つのバックスラッシュ文字の値を代入したいと考えています。問題は:
var myVar = '\'; // breaks because the backslash escapes the closing quote
var myVar = '\\'; // now myVar has two backslashes
私が見つけることができるすべては、バックスラッシュをバックスラッシュでエスケープすることを示しています。これは、私が常に一般的に正しいと知っていることです。ただし、これを IE で実行すると、バックスラッシュが 1 つではなく 2 つ表示されます。
これは、# を . に置き換えようとする IE デバッガーのスクリーンショットです。この問題は、文字列リテラルでバックスラッシュをエスケープしようとするあらゆる場所で発生します - string.replace() 関数は同じエラーを引き起こします。
[編集]
コメントありがとうございます。短期的には、何人かが推奨しているように、おそらく 8 進数または 16 進数の ascii を使用します。しかし、私が本当に望んでいるのは、バックスラッシュをエスケープできない理由を理解することです。
string.replace 関数を使用しない場合のより良いスクリーンショットを次に示します。同じ結果です。
[/編集]