jsについて
1. jsコードは単一のスレッドによって実行されますが、これは間違いなく疑いの余地はありませんが、非同期コードについてはどうでしょうか。
まずjsが最初にコードを実行し、非同期に遭遇するとキューに入れられることを理解し、メインスレッドのコード実行が完了すると、キューから取り出されて実行されます。次に、それを再びキューに入れて、順番に実行します。
次に例を示します。
for (var i = 1; i <= 3; i++) {
setTimeout(function () {
console.log(i);
}, 0)
}
このコードが最初に何を出力するか推測できますか?答えは4、4、4です!これは、forループが実行されると、非同期に遭遇すると、印刷の代わりにforの実行が継続されるためです。for実行が完了すると、この時点でiの値は4になり、3回の印刷は4になります。 、4。letを使用して達成することを選択できます。
そして、私はjsの実行順序についてこれ以上述べません。もしあなたがたまたま提案を見たら、知ってください!これは、インタビューの見出しの質問で言及されました。
2. document.body.contentEditable = true、これは興味深いものです。自分で試すことができます。
htmlについて
1.入力のonchange属性については、値がいつ変更されるかを監視するために使用され、関数がトリガーされることを多くの人が知っています。値も手動で入力したときにトリガーできますが、jsスクリプトによってトリガーされた場合、このメソッドはトリガーされず、vueのv-change、angularなどがあります。 ng-change属性はこんな感じ!
2.多くの興味深い属性をカスタマイズするには?たとえば、ボタンにデータ属性を設定した場合、どのようにこの属性を取得しますか?
答えはdocument.attr()です。
3、
display:table,display:tablecell
これはレイアウト方法であり、実用性はフレックスに匹敵します、