質問の解決のJavascriptの白い古典的な種類()

1、答えは:D

関数内、我々は最初のvarキーワードで変数名を宣言します。変数が促進されたことを、この手段は、(作成段階でのメモリ空間を設定した)、デフォルト値は可変位置の定義に実行する前に、プログラムまで定義されていません。我々は位置定義された変数に実行できない場合、我々は名前の変数を印刷するときので、変数遺跡の値は未定義そう。

constキーワードによって変数を宣言しても改善してみましょうが、異なるとVAR、彼らは初期化されませんします。彼らは私たちの文でアクセス(初期化)することはできません前に。この動作は、一時的なデッドゾーンと呼ばれています。我々は文の前にそれらにアクセスしようとしたときには、JavaScriptのReferenceErrorはエラーをスローします。

2.回答:C

JavaScriptをイベントループので、setTimeoutメソッドコールバックがトラバーサルの終了後に実行されます。私は最初の走査で横断するので、この値はグローバルスコープの下にあるので、varキーワードで宣言されています。トラバーサルの間に、私たちは私の各値に++は単項演算子でインクリメントされます。コールバックが実行されたときのsetTimeout、iの値が3に等しいです。

第二のトラバースにおいて、トラバーサルiを宣言されているキーワードをしてみましょう:変数を通過させるには、constキーワードは、({}内の任意のコンテンツを指す)ブロックレベルの範囲を有すると宣言されます。各横断プロセスは、iが新しい値、およびループ内の各値の範囲を有しています。

3、答えは:B

直径の値は、従来の関数であるが、周囲の値は矢印の関数であることに留意されたいです。
矢印機能のために、このキーポイントの現在のスコープ、異なるルーチンの動作と機能の周りに(従来の機能は、単に含有矢印の機能、そうでない場合は通常の関数であり、そのグローバルオブジェクトです)。我々は、境界を呼び出すときに、このオブジェクトを成形する点ではなく、このことは意味の範囲の周りの(この例では窓)。
いいえ半径このウィンドウの属性ないので、戻り未定義

4.回答:A

ブール数をオンにプラス単項演算子の試み。真は、その後数1、0はfalseに変換されます。
文字列「リディアは」本当の値であり、真の値がfalseを返す反転させます

5.回答:A

JavaScriptでは、キーは、すべてのオブジェクトは、文字列(オブジェクトがシンボルである場合を除く)です。私たちは、文字列としてそれらを定義していないかもしれないが、彼らは常に一番下にある文字列に変換されますが。

我々はブラケットの構文を使用する場合([])、JavaScriptは(またはunboxes)文を説明します。これは、最初の[あなたがエンドブラケットを見つけるまでの移動]最初のブラケットを見始めました。この方法でのみ、それは文の値を計算します。

マウス[bird.size]:まず計算bird.size、それは小さくなります。マウス[ "小さな"]はtrueを返します。

そして、ドット構文を使用し、その後、この上に起こっているだろう。マウスなし鳥このキー、定義されていないmouse.bird手段。その後、我々はmouse.birdが定義されていないので、それはundefined.sizeなり、ドット構文mouse.bird.size使用した場合。この動作は有効ではありません、そして缶のようなエラー未定義のプロパティ「サイズ」を読んでいないがスローされます

6.回答:A

2つのオブジェクトが互いに等しくなるように設定するJavaScript、それらはによって意志参照対話。

まず、変数  c 値はオブジェクトです。次に、我々は持っているに  d アサイン1と  c 同じ参照オブジェクト

だから我々は、実際には、すべてのオブジェクトを変更し、オブジェクトの1つを変更したとき

7.回答:C

新しい番号は()組み込み関数ビルダーです。それは数のように見えたが、それは実際には実数ではないですが:それは余分な機能の束を持っており、それが対象です。

私たちは、2の値が同一かどうかを==演算子、それだけチェックを使用する場合。それらの値は3であるため、trueを返しますので。

我々は===演算子を使用するときに、型と値の両方が同じである必要があります。新しい番号は()オブジェクト番号ではありませんので、falseを返します。

8、答えは:D

colorChangeは、静的メソッドです。静的メソッドは、唯一の彼らのコンストラクタ(すなわちカメレオン)を使用して作成するように設計されており、インスタンスに渡すことはできません。フレディがインスタンスであるため、使用の静的メソッドがインスタンス、したがって例外TypeErrorすることができません。

9.回答:A

コードは、私たちはグローバルオブジェクトに空のオブジェクトを作成しているので、それはある、オブジェクトを出力します!我々は間違ってそれがglobal.greetign = {}(またはwindow.greetign = {})として実際にブラウザーにgreetign、JSインタープリタに挨拶します。
この問題を回避するために、我々は`「厳格な使用」を使用することができます。これは、あなたが宣言した変数が割り当てられなければならないことを保証します。

10.回答:A

関数はオブジェクトであるため、これは、JavaScriptで可能です!(他のオブジェクトの基本的なタイプに加えている)
関数は、特別な目的です。あなたは、このコードは実際には本当の関数ではありません書きます。属性と属性も呼び出すことができるオブジェクトの機能を持っています

11.回答:A

あなたは、コンストラクタに追加のプロパティとして、通常のオブジェクトのようにすることはできません。あなたはすべてのインスタンスの1回限りの特性を追加したい場合は、プロトタイプを使用する必要があります。このように、本実施形態では、以下のように使用されます。

Person.prototype.getFullName = 関数(){
   リターン `$ { この .firstName} $ { この.lastName}`。
}

この意志member.getFullName()関数。なぜそんなに役に立つのですか?私たちは、それ自体でコンストラクタにこのメソッドを追加したとします。たぶん、すべてのPersonインスタンスは、このメソッドを必要としません。彼らはまだ各インスタンスのメモリ空間を取り上げる性質を持っているので、これは、メモリ空間の多くを無駄にします。私たちはプロトタイプに追加した場合、逆に、それが唯一のメモリ内の位置に存在しますが、すべてのインスタンスがそれにアクセスすることができます!

12.回答:A

サラのために、我々は新しいキーワードを使用していませんでした。私たちが作成した場合は新しい、この参照空のオブジェクト。使用しないときは、新規で、これはグローバルオブジェクト(グローバルオブジェクト)を参照します。

私たちは、「サラ」にthis.firstName等しい、と「スミス」にthis.lastName等しいと言います。実際には、我々はやるglobal.firstName =「サラ」とglobal.lastName =「スミス」を定義です。そして、サラ自身が定義されていません

13.回答:D

キャプチャ(捕捉)段階では、イベントは、ターゲット要素に祖先から下方に広がります。イベントは、ターゲット(目標)要素に到達すると、バブリング(バブリング)が始まりました。

14.回答:B

基本的なオブジェクト(ベースオブジェクト)に加えて、すべてのオブジェクトは、プロトタイプを持っています。基本的なオブジェクトは、.toStringなどのメソッドやプロパティにアクセスすることができます。あなたは組み込みのJavaScriptのメソッドを使用することができる理由です!プロトタイプ上のこれらのメソッドのすべてが利用可能です。JavaScriptはオブジェクト上で直接これらのメソッドを見つけることができませんが、JavaScriptには、使用するためには、プロトタイプチェーンに沿ってそれらを見つけるでしょうが、

15.回答:C

JavaScriptは動的型付け言語です:私たちは、特定の変数のタイプを指定しません。値が自動的にあなたが知らない場合には異なるタイプに変換することができ、このタイプは、暗黙の型変換(暗黙の型変換)と呼ばれています。強制は、別の型に1種類を変換するために参照します

この例では、JavaScriptは関数とは意味のある値を返すように、デジタル文字列に変換されます。番号は文字列として扱われる場合、デジタルタイプ(1)、および文字列(2「」)で添加されます。私たちは、このような「こんにちは」+「世界」などの文字列を、接続することができ、この発生は「1」+「2」で、それは「12」を返します。

16.回答:C

自己増力++単項演算子:

戻り値(リターン0)
増分値(数になりました1)
元前とインクリメント演算子++:

インクリメント値(数2になりました)
の戻り値(リターン2)
結果は022です。

17.回答:B

リテラルタグテンプレート場合は、最初のパラメータの値は常に文字列の配列が含まれています。式の値が渡された得られたパラメータの残りの部分!

18.回答:C

等価性試験、その値(値)を比較することにより、基本的な種類、及びその参照(基準)により比較対象場合。JavaScriptは、オブジェクトがメモリ内の同じ場所への参照を持っているかどうかをチェック。

我々の2つのオブジェクトが比較されているタイトルは同じ参照されない:オブジェクトの基準位置は、参照オブジェクトに等しいメモリ位置が、パラメータメモリとして渡され、そして異なる判定する。

=== {年齢:18}と{年齢:18} == {年齢:18}虚偽の理由を返します。これは、{18歳}です。

19.回答:C

拡張演算子(引数...)は、その配列引数を返します。アレイは、引数が「オブジェクト」に戻り、したがってTYPEOF、オブジェクトです。

20.回答:C

使用して、あなたが誤ってグローバル変数を宣言しないようにすることができ、「厳格な使用します」。私たちは、「厳格な使用」を使用しているため、それが参照エラーがスローされます、変数の年齢を宣言したことがありません。私たちは「厳格な使用」を使用しない場合は、プロパティはグローバルオブジェクトの年齢に追加されるので、動作します。

21.回答:A

文字列としてコードに渡され、それらを評価EVAL。それだけでこの場合は、その式の評価として、表現された場合。式は10 * 10 + 5です。これは、105を返します。

22.回答:B

タブを閉じるタブの後のsessionStorage格納されたデータは削除されます。

あなたがのlocalStorageを使用している場合は、localStorage.clearを呼び出さない限り、データは常に、そこになります()。

23.回答:B

varキーワードは、同じ名前の宣言、複数の変数を使用することができます。そして、変数の最新の値を保存します。

彼らはスコープをブロックするので、あなたは、これを行うためにCONSTを使用するか、聞かせすることはできません。

24.回答:C

地上階に(記号は含まない)すべてのオブジェクトキーを使用すると、文字列入力としてそれを所有していない場合でも、文字列です。また、真obj.hasOwnProperty(「1」)を返す理由です。

コレクションのために、それは働いていません。ノー '1' 私たちのコレクションで:set.has( '1')はfalseを返します。これは、真のデジタルタイプ1、set.has(1)に戻ります。

25.回答:C

あなたが同じ2つのキーの名前を持っている場合は、キーが置き換えられます。それはまだキーが表示されるの最初の位置にあるが、値はそのキーの最後の値が表示されています。

26.回答:A

基本的な実行コンテキストは、グローバル実行コンテキストである:それは、コードアクセス可能どこかの内容であります

27.回答:C

条件がtrueを返した場合、文は現在の反復をスキップし続けます

28.回答:A

Stringコンストラクタが構築され、我々はそれにプロパティを追加することができます。私は、プロトタイプのメソッドを追加するだけで、それにいますよ。基本的なタイプの文字列が自動的に関数プロトタイプ列によって生成された文字列オブジェクトに変換されます。そのため、すべての文字列(文字列オブジェクト)がメソッドにアクセスすることができます!

29.回答:B

Keyオブジェクトは、自動的に文字列に変換されます。我々は、対象オブジェクトBは、結合、および123の対応する値で設定しようとします。

しかし、オブジェクトの文字列は、それが「[対象オブジェクト]」。したがってここでは、[「[対象オブジェクト]」] = 123となります。その後、再び、私たちは同じことを行う、cが別のオブジェクトは、暗黙的な、したがって、[「[オブジェクトのオブジェクト]」] = 456の文字列でもあり、です。

我々は、次に、[「[対象オブジェクト]」]であり、[B]を印刷します。ただ、456を設定する前に、その456が返されます。

30.回答:B

私たちは、setTimeout関数を持ち、それを最初に呼び出します。しかし、それは最後の印刷ログです。

ブラウザでは、私たちだけではなく、ランタイムエンジンを持っているが、WebAPIのと呼ばれるものがあるからです。WebAPIのsetTimeout関数を提供し、また、他の、例えばDOM含みます。

コールバックはWebAPIの、setTimeout関数自体にプッシュした後(ただし、コールバック!)スタックポップから

 

 さて、foo それは印刷と呼ばれています  "First"

 

 foo スタックからポップ、baz 印刷と呼ばれています  "Third"

 

 WebAPI 不能随时向栈内添加内容。相反,它将回调函数推到名为 queue 的地方。

 

 这就是事件循环开始工作的地方。一个事件循环查看栈和任务队列。如果栈是空的,它接受队列上的第一个元素并将其推入栈

 

 bar 被调用,打印 "Second",然后它被栈弹出。

31、答案: C

导致事件的最深嵌套的元素是事件的 target。你可以通过 event.stopPropagation 来停止冒泡。

32、答案: A

如果我们点击 p,我们会看到两个日志:p 和 div。在事件传播期间,有三个阶段:捕获、目标和冒泡。默认情况下,事件处理程序在冒泡阶段执行(除非将 useCapture 设置为 true)。它从嵌套最深的元素向外传播。

おすすめ

転載: www.cnblogs.com/jjgw/p/12173685.html