2009 年 12 月に、ECMAScript は ECMAScript 5 をリリースしました。ECMAScript 3 標準の前のバージョンのリリースから 10 年が経過しましたが、この期間中、JavaScript は Web プログラミングで普及していましたが、最終的には ECMAScript 4 が大手メーカーや組織に採用されました。言語の複雑さ (つまり、ECMAScript の機能を拡張するために多数の機能を追加するかどうか) が意見の相違によって妨げられ、新しい ECMAScript 標準の策定がプログラミングの実践から大きく遅れました。 ECMAScript 5 では、JSON のサポートとリフレクションのより包括的な制御の追加に加えて、「厳密モード」の導入がそれほど野心的ではありません。このモードでは、ECMAScript の構文がより厳密になるため、必須の変数宣言や with ステートメントの禁止など、エラーが発生しやすい一般的なコードの多くが許可されなくなります。このモードの採用は非常に簡単で、スクリプト ファイルまたは関数の最初の行に「use strict」という文字列を追加するだけです。
著者は後に、2010 年に with キーワードの欠点について論じた小さな記事を書いたことを知りました。以下に添付します。
ウェッジ
昔、魔法のペン馬良の故郷は、彼を記念して道路に彼の名前を付けたいと考えていました。馬良氏は拒否しなかったが、4つの言葉でアドバイスを行った。何年も後、ある外国人がここに来て、この道で地元の人を呼び止めて道を尋ねました。
すみません、ここは聖道ですか?
はい、ここは神馬路です。
あなたも知りませんか?
私はここにいる人間ですが、どうして分からなかったのでしょう。
では、ここは聖道なのでしょうか?
なぜ知ってから聞くのですか。
これが聖道だなんて知りません。
では、ここは聖なる道だということはすでに言いましたね?
ここは聖道だともう一度言えますか?
......
その後、地元の男は魔法のペンである馬良の意見を思い出し、ハッと気づきました。馬良氏が言ったのは、略語を使うなということだ。
質問
ある日、トムは中国人の友人、ワン・アーにこう言いました。「私には夢がある。CCTVに自分の姿を映したい。」翌日、トムは近所の店に侵入しました。
問題は、トムがいつ夢を語ったのかということです、彼は
A)野心的な B) 野心的ではない C) 曖昧な D) 曖昧でない
正解は B) と C) です。これはJavaScriptにも存在します。
objectWithLongName1.propty1=value1;
objectWithLongName1; のような長い名前の変数を繰り返し参照するのは面倒な場合があります。 =value3;
objectWithLongName1.method1();
しかし、プログラムを読みやすくするためには、明確な名前が非常に重要です。したがって、JavaScript には with ステートメントが用意されています。上記の例は次のように書き換えることができます:
コードをコピー