この記事では、jQueryに基づいたフロントエンドのインタビューをいくつかまとめて皆さんと共有します。jQuery に関する一般的なインタビューの質問とモバイルでの一般的な質問が含まれています。皆さんのお役に立てれば幸いです。
関連する推奨事項:2022 年のフロントエンド面接での大きな質問の概要 (コレクション)
jQuery フロントエンド インタビュー - モバイル端末を含む FAQ
jquery ソース コードは、匿名関数の自己実行環境にカプセル化されており、変数のグローバルな汚染を防ぐのに役立ちます。その後、ウィンドウ オブジェクトのパラメータを渡すことで、ウィンドウ オブジェクトはローカル変数として使用できるため、jquery でウィンドウ オブジェクトにアクセスするときにスコープ チェーンを最上位スコープに戻す必要がないため、ウィンドウ オブジェクトにより速くアクセスできるという利点があります。同様に、未定義パラメータを渡すと、未定義を検索するときにスコープ チェーンが短縮される可能性があります。 [推奨学習:jQuery ビデオ チュートリアル]
(function( window, undefined ) { //用一个函数域包起来,就是所谓的沙箱 //在这里边var定义的变量,属于这个函数域内的局部变量,避免污染全局 //把当前沙箱需要的外部变量通过函数参数引入进来 //只要保证参数对内提供的接口的一致性,你还可以随意替换传进来的这个参数 window.jQuery = window.$ = jQuery; })( window );
返される this は、現在の操作後の jquery オブジェクトを参照します。jquery の連鎖操作を実現するには、
jquery のグローバル メソッド $.parseJSON を使用するこのメソッド
$.jQuery の浅いコピー、オブジェクト A をコピーすると、オブジェクト B は A のすべてのフィールドをコピーします。フィールドがメモリ アドレスの場合、B はアドレスをコピーします。フィールドがプリミティブ型の場合、B はその値をコピーします。欠点は、オブジェクト B が指すメモリ アドレスを変更すると、このアドレスを指すオブジェクト A のフィールドも変更されることです。
$.extend(a,b)
$.extend deep copy in jQuery. このメソッドはすべてのデータを完全にコピーします。は A との相互依存関係がありません (A と B は完全に切断されています) デメリットは、コピー速度が遅く、コストが高いことです。
$.extend(true,a,b)
jQuery.extend({ min: function(a, b) { return a < b ? a : b; }, max: function(a, b) { return a > b ? a : b; }); jQuery.min(2,3); // 2 jQuery.max(4,5); // 5
jQuery.extend(target, object1, [objectN])
オブジェクトを 1 つ以上の他のオブジェクトで拡張し、拡張されたオブジェクトを返します。var settings = { validate: false, limit: 5, name: "foo" }; var options = { validate: true, name: "bar" }; jQuery.extend(settings, options);
jQuery.fn = jQuery.prototype = { init: function( selector, context ) {//.... };
jQuery.fn = jQuery.prototype
7. Jquery の関数について話しましょうbind()、live()、delegate()、on() の違いは何ですか?jQuery の中核にはキュー制御メソッドのセットがあり、このメソッド セットは queue()/dequeue()/clearQueue() の 3 つのメソッドで構成されます。関数の制御は簡潔で快適と言え、主にanimate()メソッドやajaxなど、時系列に実行する必要があるイベントで使用されます。 #
var _slideFun = [ function() { $('.one').delay(500).animate({ top: '+=270px' },500, _takeOne); }, function() { $('.two').delay(300).animate({ top: '+=270px' },500, _takeOne); } ]; $('#demo').queue('slideList', _slideFun); var _takeOne = function() { $('#demo').dequeue('slideList'); }; _takeOne();ログイン後にコピー
に基づいて実装されています。
説明 | |
---|---|
## 選択した要素のイベント処理関数に 1 つ以上のイベントをバインドする、互換性のあるイベント バインディング メソッドをカプセル化します。 |
|
一致する各要素の特定のイベントにイベント ハンドラーをバインドする |
|
#要素が後で追加された場合でも、一致するすべての要素にイベント ハンドラーを追加します
|
delegate(selector, [type],[data],fn) |
指定した要素 (選択した要素の子要素) に 1 つ以上のイベント ハンドラーを追加し、これらのイベントが発生したときに実行する関数を指定します。
|
違い: |
Method
は要素
|
に直接バインドされます Set | .live()||||||||
はバブリングを通じて要素にバインドされます。ドキュメント DOM ノードにバインドされたリスト タイプにより適しています。 .bind() の利点は、動的データをサポートしていることです。
|
.delegate() | ||||||||
は、より正確な小規模な使用法です。イベント エージェント。パフォーマンスは .live()
|
よりも優れています。on() | ||||||||
は、以前の 3 つを統合した最新バージョン 1.9 です。イベント バインディング メカニズム
|
8、JQuery一个对象可以同时绑定多个事件,这是如何实现的?
9、针对jQuery性能的优化方法?
var str=$("a").attr("href"); for (var i = size; i < arr.length; i++) {}
ログイン後にコピー
for (var i = size, length = arr.length; i < length; i++) {}
ログイン後にコピー
10、Jquery与jQuery UI 有啥区别?
11、jQuery和Zepto的区别?各自的使用场景?
①、tap事件
②、Swipe事件
12、Zepto的点透问题如何解决?①、“点透”是什么
②、点透的解决方法:
window.addEventListener( "load", function() { FastClick.attach( document.body ); }, false );
ログイン後にコピー
13、移动端最小触控区域是多大?
14、jQuery 的slideUp动画,如果目标元素是被外部事件驱动, 当鼠标快速地连续触发外部元素事件, 动画会滞后的反复执行,该如何处理呢?
15、移动端的点击事件的有延迟,时间是多久,为什么会有?怎么解决这个延时?
16、你从jQuery学到了什么?
17、请指出.get(),[],eq() 的区别。
18、请指出$ 和$.fn 的区别,或者说出$.fn 的用途。
19、jQuery取到的元素和原生Js取到的元素有什么区别
20、原生JS的window.onload与Jquery的$(document).ready(function(){})有什么不同?如何用原生JS实现Jq的ready方法?①、window.onload()
②、$(document).ready()
function ready(fn){ if(document.addEventListener) { //标准浏览器 document.addEventListener('DOMContentLoaded', function() { //注销事件, 避免反复触发 document.removeEventListener('DOMContentLoaded',arguments.callee, false); fn(); //执行函数 }, false); }else if(document.attachEvent) { //IE document.attachEvent('onreadystatechange', function() { if(document.readyState == 'complete') { document.detachEvent('onreadystatechange', arguments.callee); fn(); //函数执行 } }); } };
ログイン後にコピー
(学习视频分享:web前端教程) 以上がjQuery ベースのフロントエンドのインタビュー (モバイル端末に関する FAQ を含む) を要約して共有します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
Nuxt.js に jQuery をインストールする手順
プロジェクトに jQuery を追加しようとしましたが、定義されていないというエラーが表示されます。 plugins:[{src:'~/plugins/js/svgSprite.j...
から 2023-11-06 16:41:50
0
1
225
を持つ div があります。 $('button').click(...
から 2023-11-01 23:01:19
0
1
209
テキストエリアを自動的に拡張する
シンプルな自動拡張テキストエリアを作成しようとしています。これは私のコードです: textarea.onkeyup=function(){textarea.style.height...
から 2023-10-21 08:49:23
0
2
225
関連トピック
詳細>
|