これらの質問に正しく答えることができれば、あなたは JavaScript の上級者です

WBOY
リリース: 2024-08-06 07:14:22
オリジナル
687 人が閲覧しました

You’re Decent At JavaScript If You Can Answer These uestions Correctly

不正行為はしないでください?

これらの質問の概念は、私が実稼働コードで遭遇したものです。このクイズの目的は、関連性のある必須の JavaScript 知識をテストすることです。

Q1: コンテキストを理解する

コンソールには何が記録されますか?

リーリー

答え:

  • A) 名前: アリス、禁止: false、未定義、TypeError: 未定義のプロパティ 'getName' を読み取れません
  • B) 名前: アリス、禁止: false、未定義、名前: 未定義、禁止: 未定義
  • C) 名前: アリス、禁止: false、未定義、名前: アリス、禁止: false
  • D) 名前: アリス、禁止: false、未定義、TypeError: this.getName は関数ではありません

Q2: 終了

コンソールには何が記録されますか?

リーリー

答え:

  • A) 1、2、3
  • B) 1、2、1
  • C) 1、1、1
  • D) 1、2、未定義

Q3: 非同期 JavaScript

コンソールには何が記録されますか?

リーリー

答え:

  • A) 開始、終了、タイムアウト 1、タイムアウト 2、約束 1、約束 2
  • B) 開始、終了、約束 1、約束 2、タイムアウト 1、タイムアウト 2
  • C) 開始、約束 1、約束 2、タイムアウト 1、タイムアウト 2、終了
  • D) 開始、タイムアウト 1、タイムアウト 2、約束 1、約束 2、終了

Q4: JS のプロトタイプ

コンソールには何が記録されますか?

リーリー
  • A) レックスが音を立てます。、true、false
  • B) レックスが音を出す、本当、本当
  • C) エラー: speech は関数ではありません
  • D) レックスが音を立てます。、false、true

Q5: デフォルトのパラメータ

各通話について何が記録されますか?

リーリー

Q6: 開閉と機能

コンソールには何が記録されますか?

リーリー

Q7: イベントの処理と伝播

リーリー
  • A) インナーキャプチャ、インナーバブル、ミドルキャプチャ、ミドルバブル、アウターキャプチャ、アウターバブル
  • B) アウターキャプチャ、ミドルキャプチャ、インナーキャプチャ、インナーバブル、ミドルバブル
  • C) インナーバブル、ミドルバブル、アウターバブル
  • D) アウターキャプチャ、ミドルキャプチャ、インナーキャプチャ、インナーバブル、ミドルバブル、アウターバブル
  • E) アウターキャプチャー、ミドルキャプチャー、インナーキャプチャー、インナーバブル

開発ツールのコンソールにコードを貼り付けることで、これを自分で確認できます。

解決策 Q1:

正解はBです

説明: user.getStatus() 呼び出しは、「名前: アリス、禁止: false」をログに記録します。これは、アロー関数のステータスが、それを囲んでいるスコープ内でこれに正しくアクセスするためです。ただし、getName() は、スタンドアロン変数に割り当てられると this コンテキストが失われるため、未定義をログに記録します。そのため、getStatus() も、name と isBanned の両方についても未定義を記録します。

解決策 Q2:

正解はBです

説明: createCounter() を呼び出すたびに新しいクロージャーが作成されるため、counter1 と counter2 にはそれぞれ独自の個別のカウント変数があります。したがって、counter1 は最初の 2 回の呼び出しで 1 と 2 を記録し、counter2 は最初の呼び出しで 1 を記録します。

解決策 Q3:

正解はBです

説明: 同期 console.log は、最初にログ「Start」と「End」を呼び出します。イベント ループでは Promise の優先順位が setTimeout よりも高いため、次に「Promise 1」と「Promise 2」が記録され、次に「Timeout 1」と「Timeout 2」が記録されます。

解決策 Q4:

正解はAです

説明: したがって、これは少し難しいです。 speech メソッドは Dog.prototype で正しく定義されており、dog は Dog のインスタンスです。

Dog コンストラクター内で、この行は現在の this コンテキストと name 引数を使用して Animal コンストラクターを呼び出します。これにより、新しく作成された Dog インスタンスの name プロパティが効果的に設定されます。

ここで、コードが次のようになるとしましょう:

リーリー

その場合、正解は B) になります。

補足: 自分で検証したい場合は、ブラウザに貼り付ける必要があります (間違った答えが得られる LLM ではありません)。

解決策 Q5:

正しい出力は次のとおりです:

    名前: ゲスト、役割: ユーザー
  • 名前: ゲスト、役割: ユーザー
  • 名前: アリス、役割: ユーザー
  • TypeError: 'null' のプロパティ 'name' は null であるため、構造化できません。
解決策 Q6:

答え: 3、3、3、0、1、2

説明: 最初のループは関数スコープを持つ var を使用するため、配列の前半のすべての関数は同じ i (ループの終わりまでに 3) 上で閉じます。 2 番目のループはブロック スコープを持つ let を使用するため、後半の各関数は異なる j 値 (0、1、2) で閉じられ、出力は 3、3、3、0、1、2 になります。

解決策 Q7:

正解はDです

説明:

  • イベントは先頭 (ドキュメント ルート) から始まり、キャプチャ フェーズ中にターゲット要素まで下に移動し、キャプチャ リスナー (外部キャプチャ、中間キャプチャ、内部キャプチャ) をトリガーします。
  • ターゲット(内側のボタン)に到達すると、登録順にターゲットのリスナーをトリガーします(インナーキャプチャ、次にインナーバブル)。
  • その後、バブルが発生し、各祖先 (Middle Bubble、Outer Bubble) でバブル リスナーをトリガーします。

この例は、イベントの完全なライフサイクルを示しています。 stopImmediatePropagation または stopPropagation 関数を呼び出すことで伝播を停止できます。

以上がこれらの質問に正しく答えることができれば、あなたは JavaScript の上級者ですの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!