jQuery ベースのフロントエンドのインタビュー (モバイル端末に関する FAQ を含む) を要約して共有します。
この記事では、jQuery に基づいたフロントエンドのインタビューをいくつかまとめて皆さんと共有します。jQuery に関する一般的なインタビューの質問とモバイルでの一般的な質問が含まれています。皆さんのお役に立てれば幸いです。
関連する推奨事項: 2022 年のフロントエンド面接での大きな質問の概要 (コレクション)
jQuery フロントエンド インタビュー - モバイル端末を含む FAQ
1. JQuery のソース コードを見たことがありますか?その実装原理について簡単に説明してもらえますか?
jquery ソース コードは、匿名関数の自己実行環境にカプセル化されており、変数のグローバルな汚染を防ぐのに役立ちます。その後、ウィンドウ オブジェクトのパラメータを渡すことで、ウィンドウ オブジェクトはローカル変数として使用できるため、jquery でウィンドウ オブジェクトにアクセスするときにスコープ チェーンを最上位スコープに戻す必要がないため、ウィンドウ オブジェクトにより速くアクセスできるという利点があります。同様に、未定義パラメータを渡すと、未定義を検索するときにスコープ チェーンが短縮される可能性があります。 [推奨学習: jQuery ビデオ チュートリアル ]
(function( window, undefined ) { //用一个函数域包起来,就是所谓的沙箱 //在这里边var定义的变量,属于这个函数域内的局部变量,避免污染全局 //把当前沙箱需要的外部变量通过函数参数引入进来 //只要保证参数对内提供的接口的一致性,你还可以随意替换传进来的这个参数 window.jQuery = window.$ = jQuery; })( window );
- jquery は、いくつかのプロトタイプ プロパティとメソッドを jquery.prototype にカプセル化します。名前を短縮するために、それは に割り当てられます。 jquery.fn、これは非常に鮮やかな書き方です。
- よく使用される配列やオブジェクトのメソッドがいくつかありますが、jQuery ではアクセス速度を向上させるためにローカル変数として保存します。
- jquery によって実装されたチェーン呼び出しはコードを節約でき、同じオブジェクトが返されるため、コードの効率が向上します。
- jquery の利点は、チェーン操作と暗黙的な反復です。
2. jQuery.fn の init メソッドから返されるこれはどのオブジェクトを参照していますか?なぜこれを返すのですか?
返される this は、現在の操作後の jquery オブジェクトを参照します。jquery の連鎖操作を実現するには、
3 方法jqueryを使用します配列をjson文字列に変換し、再度変換しますか?
jquery のグローバル メソッド $.parseJSON を使用するこのメソッド
4. jQuery の属性コピー (拡張) の実装原理とその方法ディープコピーを実装しますか?
①、jQuery の $.extend 浅いコピー
$.jQuery の浅いコピー、オブジェクト A をコピーすると、オブジェクト B は A のすべてのフィールドをコピーします。フィールドがメモリ アドレスの場合、B はアドレスをコピーします。フィールドがプリミティブ型の場合、B はその値をコピーします。欠点は、オブジェクト B が指すメモリ アドレスを変更すると、このアドレスを指すオブジェクト A のフィールドも変更されることです。
$.extend(a,b)
②、$.extend deep copy in jQuery
$.extend deep copy in jQuery. このメソッドはすべてのデータを完全にコピーします。は A との相互依存関係がありません (A と B は完全に切断されています) デメリットは、コピー速度が遅く、コストが高いことです。
$.extend(true,a,b)
5. jquery.extend と jquery.fn.extend の違いは何ですか?
①、jQuery.extend(object);
- これは、jQuery クラスにクラス メソッドを追加することであり、静的メソッドを追加することと理解できます。例:
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);
- 結果: 設定 == { 検証: true、制限: 5、名前: “bar” }
②、jQuery.fn.extend( object);
- #$.fn?
- $.fn は、jQuery の名前空間を参照します。fn のメンバー (メソッド関数と属性プロパティ) は、jQuery インスタンスに影響を与えます。 1つは機能します。
- jQuery コードを見ると、見つけるのは難しくありません。
jQuery.fn = jQuery.prototype = { init: function( selector, context ) {//.... };
- Original
jQuery.fn = jQuery.prototype
- つまり、これは jQuery.prototype の拡張であり、「メンバー」を追加することになります。関数"。 jQueryクラスのインスタンスはこの「メンバー関数」を利用することができます。
③、違い
- jQuery.fn.extend(object); jQuery オブジェクト メソッドを拡張します
- jQuery.extend は jQuery グローバル メソッドを拡張します
6. jQuery のキューはどのように実装されていますか?キューはどこで使用できますか?
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();
jquery のbind()、live()、delegate() はすべて on
に基づいて実装されています。
説明 | |
---|---|
## 選択した要素のイベント処理関数に 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 サイトの他の関連記事を参照してください。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1
使いやすく無料のコードエディター
