とはいえ、jQuery のおかげでフロントエンド技術を学ぶ人が増えているにもかかわらず (学校の図書館で偶然 jQuery の基本チュートリアル (2) に出会ったので、フロントエンド技術を深く学びたいと思った)、jQuery に関するブログ記事もJavaScript よりもプログラミングの敷居が大幅に下がりますが、$('#id').append('
xxx
').clone( ).appendTo( など、あまりにも多くの詳細が隠蔽されます。 x).end().css(...)....この動作モードは、従来の JavaScript の影を見つけるのを困難にしています。ブラウザ間の違いは、なくなるとすぐに消えてしまうようです。この快適な環境で JavaScript がどのようにして異なるブラウザで一貫して動作するのかということを考えることは、ほとんどの人にとっては難しいことだと思います。祝福か呪いか。要点に戻りましょう...真剣に考えましょう
$() 関数はネイティブ DOM オブジェクトの配列をラップするオブジェクトを返し、このオブジェクトのプロトタイプで拡張された関数はすべて操作用です。 jquery ライブラリに精通している人は、jquery オブジェクトに関連するほとんどの関数がこの関数を使用することを知っています。簡単な実装は次のようになります。 🎜>(繰り返しますが、これは単なる実装原則であり、特定の機能上の問題は考慮しません)
window['$'] = window['jQuery'];
/*上記の領域は前回の記事の結び パッケージの内容
* 受信オブジェクトに基づいて操作を実行する jQuery.each を定義
* @param {Object} obj
* @param {Object} func
* For簡単にするために、前の記事と同じように配列と jQuery オブジェクトのみを考慮しました。原理は同じである必要があります。
*/
window['jQuery']['each']=function(obj,func){
if( obj.constructor==Array){
for(var i=0;i
}
}else if( obj.elements&&obj.elements .constructor==Array){//ここでは、jQuery のインスタンスであるかどうかを判断する代わりに、伝説的なアヒル ルールが使用されています。配列型の要素がある限り、私はそれを操作します
。 for(var i=0;i
}
}else{
return null;
この関数に基づいて、_jQuery のプロトタイプの拡張を開始できます。まず、ラッパー オブジェクトが直接呼び出すことができるメソッドをそれぞれ記述します (これは繰り返しではありません)。次に、この各関数を呼び出して完了します。オブジェクト配列
each: function に変更されたことに注意してください。 (func){
jQuery.each(this, func) ;
return this;
},
attr: function(key, value){
// 以下の関数を定義します。属性の設定と操作の取得
if (arguments.length == 0) {
return null;
}
else
if (arguments.length == 1) {
return this.elements[0].getAttribute(key);
}
else if(arguments.length == 2){
this.each(function(i, item){
//ここ各メソッドを再定義する利点がわかります。コードが合理化されます。 2: 内部関数では、ウィンドウの代わりに呼び出し元のラッパー オブジェクトを指します
item.setAttribute(key, value)
})
}
}
/*
* ここで、他のメソッドの導入を開始できます
*/
}
いくつかの簡単なテストを行ってみましょう: (前の記事のテスト HTML のままです)
入力:
var k= $('#header');
var k= $('#header') )); 🎜>
出力:
テストタイトル!
など、それぞれのメソッドに依存することで、ラッパーメソッドを効果的に拡張できます。前述した jQuery のチェーン呼び出しに影響する 3 つの重要な点があります。実際、後で考えると、jQuery の内部コードのメンテナンスは、少なくとも一部のライブラリのメンテナンスより優れているわけではありません。操作性としては非常に使いやすい(もちろん一部の小規模な運用に限られるし、大規模なプロジェクトにはしばらくアクセスできないし、一部の大人の意見に従うのは容易ではない)。トラバーサル操作だけを見ると、このライブラリは洗練されたプラグインにのみ依存していることがわかります。拡張すると肥大化するだけです。
注: もし誰かが jquery ソース コードを注意深く分析したなら、彼らは間違いなく私の貧弱ないわゆる実装を嘲笑するでしょう。私は確かに JavaScript dom Advanced Programming や JavaScript Advanced などの本を数冊しか読んだことがありません。設計パターンは、良い本を読んだ後の私のインスピレーションに基づいているだけなので、jquery の具体的な実装とは大きく異なる可能性があります。可能であれば修正していただければ幸いです。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

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デバイス制御に使用されます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
