面接問題

1788 ワード

Q1 .linkラベルとimportラベルの違いは何ですか?
外部参照CSSには、linkラベルとimportの2つの方法があります.
1.ロード順序の違い
linkはページとともにロードされ、importはページのロードが完了した後にロードされます.
2.互換性の違い
linkの互換性はimportより良い@importはCSS 2である.1ならではの文法なので、IE 5+でしか認識できません.linkタグはHTML要素として互換性の問題はありません.
3.DOM制御性の違い
JSでDOMを操作し、linkのラベルを挿入してスタイルを変更することができます.
DOMメソッドはドキュメントベースであるため、@importでスタイルを挿入することはできません.
4.従属関係の違い@importはCSSが提供する文法規則であり、スタイルシートをインポートする役割しかない.linkはHTMLが提供するタグで、CSSファイルをロードするだけでなく、RSS、rel接続属性なども定義できます.
5.重みの区別(以下詳細に説明する)linkによって導入されるスタイルの重みは、@importによって導入されるスタイルよりも大きい.
 
Q2 .イベントを先に泡立ててからキャプチャする方法
まず、ターゲット要素自体のイベントが先にバブルしてキャプチャしたい場合は、追加バブルイベントコードを追加キャプチャイベントの前に置きます.しかし,非ターゲット要素のイベントに対しては,親要素として,先泡後捕獲を実現する特別な方法が考えられなかった.考えることができるのは、泡が出たか否かを判断する外部変数を設定し、イベントキャプチャ時に変数が泡が出たか否かを先に判断し、ない場合processである.nextTick(fn)は,バブル中に変数を修正し,同期コード実行が完了し,非同期コード実行の前にprocessのコールバック関数を実行して実行を判断する.
しかし、完璧ではないような気がします.中間には多くの同期コードがあります.
またはsettimeout(fn,0)またはsetImmediate(fn)ですが、この2つの方法は、すべての非同期コードが実行されるまで待たなければなりません.
 
w 3 c規格によれば、まず捕獲してから泡が出るべきである.最初のバブル後のキャプチャを実現するには、1つの要素に2つのaddEventListenerをバインドし、そのうちの1つの3番目のパラメータをfalse(すなわちバブル)に設定し、もう1つの3番目のパラメータをtrue(すなわちキャプチャ)に設定し、それらのコード順序を調整し、falseに設定されたリスニングイベントをtrueに設定されたリスニングイベントの前に置けばよい.
 
 
Q3 . ツリーとノードの1つを指定します.シーケンスの次のノードを見つけて返します.ツリーのノードには、左右のサブノードだけでなく、親ノードへのポインタも含まれています.
考え方://現在のノードがルートノードの場合://1)ルートノードに右サブツリーがない場合、NULL//2に戻る)ルートノードに右サブツリーがある場合、右のサブツリーの左端のノードを返します//現在のノードが左の葉のノードです//直接その親のノードを返します//現在のノードが右の葉のノードです//1)祖父のノードが存在し、その親のノードが祖父のノードの左のノードであれば、その祖父のノードを返します//2)そうでなければ、NULL//現在のノードが非リーフノード//1)右サブツリーがない場合は、その親ノード//2)右サブツリーがある場合は、その右サブツリーの左端のノードを返します
https://www.nowcoder.com/interview/ai/97084