前端面接のjs編整理(一)
3309 ワード
jsの基本的なタイプは何ですか?引用の種類は何ですか?nullとundefinedの違い
js変数の値は2種類あります.1.基本タイプの値:スタックメモリに保存する簡単なデータタイプ.Number、String、Boolean、NullとUnidefinedのような2.引用タイプの値:ヒープメモリに保存されているオブジェクト.Object、Aray、Funct、Dataのようです.
null:変数が存在しないことを表しています.しばしば関数として使用して、存在しないオブジェクトのUdefinedを返します.存在しますが、定義されていません.たとえば、変数宣言には割り当てがありません.この変数はundefinedです.関数で提供したいパラメータが提供されていません.このパラメータはundefiendです.関数には戻り値がありません.この関数を受信する変数はUnidefinedなどです.
どのように変数を判断しますか?どのように変数を判断しますか?(全部一つじゃないです.)
先に言ってください.検出タイプのオペレータtypeofは、string、function、object、numberなどを検出することができますが、Arayを検出できず、Arayを検出し、戻る値は'object'です.
したがって、他の方法を使用して、配列タイプであるかどうかを検出する必要があります. ES 5は、Aray.isAray(「検出する変数」)方法を提供し、もしtrue に戻る. Object.prototype.toString.call(検出する変数)は、配列は、「Object Aray」 を返します.構造関数から始まり、obj instance of Arayはデジタルタイプ ですか?
1.typeof 2を使用します.isNaNを使用します.
JSによくあるdom操作アプリ DOMの作成: DOMのクエリ: DOMの変更 属性動作 事件の泡が発生したことと事件の捕獲を説明します.
親レベルのクリックイベントがあれば、サブレベルのクリックイベントもあります.addEventListenerの最後のパラメータを設定したらtrueです.クリックする時、先に親レベルを実行して、サブレベルを実行します.
3番目のパラメータがtrueに設定されている場合、イベントは捕獲段階でfalseに設定され、泡立ち段階でトリガされます.
親レベルにクリックがある場合は、サブレベルにもクリックイベントがあります.addEventListenerの最後のパラメータをfalseとして設定した場合は、クリックすると、先にサブレベルを実行し、親レベルを実行します.また、サブレベルでは上に泡ができるように組織されていますが、最終的にはサブレベルのクリックイベントのみを実行してe.stopPropagation()を使用することができます.
クローズドに対する理解?閉包はいつできますか?クローズドの実現方法?クローズドの長所と短所?
クローズドは形から見てfunction return functionです.
私たちはすべてのjsの変数に大域変数と局所変数があることを知っています.円形チェーンによって、サブオブジェクトはすべての親オブジェクトの変数を1段階ずつ上に探します.したがって、親オブジェクトのすべての変数は、子オブジェクトに対しては見えますが、逆は成立しません.Function内の局所変数は、Function return functionを介して大域的に操作することができ、これはクローズドされている.
短所:functionは参照タイプですので、関数内はヒープメモリに保存されます.関数のプライベート変数returnが出てくると、メモリのリークが発生します.
js変数の値は2種類あります.1.基本タイプの値:スタックメモリに保存する簡単なデータタイプ.Number、String、Boolean、NullとUnidefinedのような2.引用タイプの値:ヒープメモリに保存されているオブジェクト.Object、Aray、Funct、Dataのようです.
null:変数が存在しないことを表しています.しばしば関数として使用して、存在しないオブジェクトのUdefinedを返します.存在しますが、定義されていません.たとえば、変数宣言には割り当てがありません.この変数はundefinedです.関数で提供したいパラメータが提供されていません.このパラメータはundefiendです.関数には戻り値がありません.この関数を受信する変数はUnidefinedなどです.
どのように変数を判断しますか?どのように変数を判断しますか?(全部一つじゃないです.)
先に言ってください.検出タイプのオペレータtypeofは、string、function、object、numberなどを検出することができますが、Arayを検出できず、Arayを検出し、戻る値は'object'です.
したがって、他の方法を使用して、配列タイプであるかどうかを検出する必要があります.
1.typeof 2を使用します.isNaNを使用します.
JSによくあるdom操作アプリ
document.createElement('div')
//DOM
var el = document.getElementById('xxx');
// 、
var parent = ele.parentNode;// ,
// :
var nodes = ele.childNodes;
// /
var el = ele.firstChild;
// 、
ele.appendChild(el);
ele.removeChild(el);
//
ele.replaceChild(el1, el2);
//
parentElement.insertBefore(newElement, referenceElement);
//
ele.cloneNode(true) //
// {name, value}
var attrs = el.attributes;
には、タグ属性の取得、設定があります.getAttribute
、setAttribute
.タグ属性を判断、削除するhasAttribute
removeAttribute
JS window , window
document , 。 , 。
まず、イベントキャプチャについて説明します.イベントは最上層で最も正確ではないオブジェクトdocumentからトリガされ、コード指定の正確な要素に行ってele.addEventListenerをトリガします.親レベルのクリックイベントがあれば、サブレベルのクリックイベントもあります.addEventListenerの最後のパラメータを設定したらtrueです.クリックする時、先に親レベルを実行して、サブレベルを実行します.
3番目のパラメータがtrueに設定されている場合、イベントは捕獲段階でfalseに設定され、泡立ち段階でトリガされます.
親レベルにクリックがある場合は、サブレベルにもクリックイベントがあります.addEventListenerの最後のパラメータをfalseとして設定した場合は、クリックすると、先にサブレベルを実行し、親レベルを実行します.また、サブレベルでは上に泡ができるように組織されていますが、最終的にはサブレベルのクリックイベントのみを実行してe.stopPropagation()を使用することができます.
クローズドに対する理解?閉包はいつできますか?クローズドの実現方法?クローズドの長所と短所?
クローズドは形から見てfunction return functionです.
私たちはすべてのjsの変数に大域変数と局所変数があることを知っています.円形チェーンによって、サブオブジェクトはすべての親オブジェクトの変数を1段階ずつ上に探します.したがって、親オブジェクトのすべての変数は、子オブジェクトに対しては見えますが、逆は成立しません.Function内の局所変数は、Function return functionを介して大域的に操作することができ、これはクローズドされている.
短所:functionは参照タイプですので、関数内はヒープメモリに保存されます.関数のプライベート変数returnが出てくると、メモリのリークが発生します.