JSインタビューの質問 - を参照して出力が有効です

注:
ログステートメントは、印刷、直接表示情報の結果であり、
表示オブジェクトのすべてのプロパティとメソッドの内容を印刷するには、dir声明。

1.オブジェクト属性名&スタックメモリ

オブジェクトをポイントし、ヒープに格納されたオブジェクト
ここに画像を挿入説明

=>配列とオブジェクトとの間の差

ここに画像を挿入説明
[B]は[オブジェクト、オブジェクト]が格納されている
A [C]を[B] = 'トレーニング'覆う、属性名と同じ
=> Object.prototype.toString /のvalueOfを
ここに画像を挿入説明

ユニークな価値を創造する2.記号()

結果:[B]:エベレスト
ここに画像を挿入説明
機能の=>シンボル独自の実装

3.閉鎖

ここに画像を挿入説明
」4'
アラート結果(のtoStringを有する)
機能直ちに実行
機能は、参照型、スタックに格納するパラメータなし、テスト関数で
関数が実行されるたびに、コンテキストを作成(実行環境)を行います

それらは実行コンテキストで作成された表示機能試験、であると定義するとき、スコープより高い結果を返す(テスト機能を直ちに実行され、それは直ちに関数定義内で実行され、その結果、このように、関数であります関数が)で定義された関数の実行時に即座に実行され、検索する範囲のより高いレベルに移動します
実装後のテスト(5)を、内部のものの実装のコンテキストが他の人によって占有されていない、それが破壊されます
私は2 =実行をそれは右上関数の範囲であるため、また保存の状況は、私を破壊することができない、閉鎖
ここに画像を挿入説明
GOを書き換えられるグローバル変数表す
グローバル定数a、bを、クロージャは、グローバル汚染によって保護されていません
ここに画像を挿入説明

4.オブジェクト指向

ここに画像を挿入説明
ここに画像を挿入説明
機能、VAR、文法ES5は、ありますので、JavaScriptのがあるでしょう、可変リフト

  • JavaScriptを、関数と変数は声明の一番上の機能(現在のスコープ)に昇格されます。
  • 事前にvarステートメント、関数宣言の事前のコピー+
  • 変数は使用後に宣言することができるので、あること、変数が再び使用する前に宣言することができます。

関数のgetName(){にconsole.log(5 )} ステートメントではなく、再ステートメント、現在のスコープ内のgetNameを有し、直接割り当て
関数はオブジェクトである、ヒープ内のプロトタイプオブジェクトである
プライベート関数パラメータ、変数でありますより高い範囲で定義、ここ
JS演算子優先順位テーブル:.新しいFoo.getName()新しい引数なし、新しいはFoo()のgetName新しい () パラメータと
インスタンスメソッドを呼び出し、この方法は、プロトタイプである必要があり
、矢印の関数は、新しい=>差関数と矢印の正常機能することはできません
ここに画像を挿入説明

5. JS非同期

EC機能:[今すぐ実行機能
メインスタック- EventQuene(マイクロタスク、マクロタスク)
のコードは、非同期に行った、唯一のイベントキューを見つけるために、イベントキュー、完成最初のメインスタックのコード実行に入ります
ここに画像を挿入説明

約束、ASYN、タイマーがある非同期の
ブラウザは、マルチスレッドレンダリング&HTTPリクエストです。
jsがシングルスレッド=>ブラウザのみ所与JSレンダリングするスレッド
イベントキューイベントキューの
メインスレッドのコードが実行されるスタックは、[約束、ASYN、のawait]、マクロを実行するためにイベント・キュー(マイクロ優先度のタスクを検索するには、上で[タスクタイマ、イベントは結合、AJAX])、実行中のメインスタックに

var a = ?
if(a == 1 && a == 2 && a == 3){
	console.log('条件成立');
}

= =データ型変換の
変換規則:
文字列がなった後、次いで、比較.toString():文字列=オブジェクト=
NULL = =不定等しく、他の値との比較は、それがもはや同じになる
のNaN ==のNaN不等
残りはデジタルに変換され、

例えば[10] = = 10
[10] .toString() - > "10" - >ナンバー( "10") - > 10

===絶対に等しいです

プロトタイプ書き換えのtoString()メソッド、比較ルールを使用して==列に方法
またはのvalueOf()
ここに画像を挿入説明

2.関数をハイジャックする方法
GETはobj.name:トリガ()を取得
トリガーSET():セットobj.nameプロパティを
それ以外の場合はエラーのDefinePropertyゲッターインターセプター再び電流特性を得ることができないので、使用++ I:スタックオーバーフロー
ここに画像を挿入説明
ここに画像を挿入説明
a.shift削除最初の項目を返します
ここに画像を挿入説明

公開された149元の記事 ウォンの賞賛5 ビュー30000 +

おすすめ

転載: blog.csdn.net/qq_26327971/article/details/105168753