国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

javascript - Elevation での関數(shù)宣言の例との混同
淡淡煙草味
淡淡煙草味 2017-06-26 10:50:47
0
2
807

『JavaScript 高度なプログラミング』第 7 章 関數(shù)、関數(shù)宣言の促進(jìn)に関して、次のような例があります。 リーリー

この本の原文には次のように書かれています:

表面上、上記のコードは、條件が true の場合は、sayHi() の 1 つの定義を使用し、それ以外の場合は、別の定義を使用することを意味します。実際、これは ECMAScript では無効な構(gòu)文であり、JavaScript エンジンはエラーを修正して適切な狀態(tài)に変換しようとします。しかし問題は、ブラウザがエラーを修正しようとする試みが一貫していないことです。ほとんどのブラウザは條件を無視して 2 番目のステートメントを返しますが、Firefox は條件が true の場合に最初のステートメントを返します。したがって、この使用法は危険であるため、コード內(nèi)で使用しないでください。

しかし、chrome と js bin でテストし、條件を true に変更したところ、「Hi」というアラートが得られ、本に書かれている「ほとんどのブラウザは 2 番目のステートメントを返し、條件を無視する」というような問題は発生しませんでした。 、どうしてこれなの:### リーリー

アドバイスをお願いします、ありがとうございます!

淡淡煙草味
淡淡煙草味

全員に返信(2)
為情所困

true は変數(shù)ではなくリテラルです。ブラウザは、次のように、解析時に if ステートメントを直接最適化します。 リーリー

ただし、著者は別の狀況について言及しています

リーリー

三叔

コンパイラーがこのコードを取得すると、同じスコープ內(nèi)に重複する関數(shù)宣言が 2 つあることがわかり、最初の宣言は 2 番目の宣言に直接置き換えられます。
js では、ブロック內(nèi)で関數(shù)を宣言することはお勧めしません。
厳密モードでは、このコードはエラーを直接報告します。

最新のダウンロード
詳細(xì)>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート