うわー、それは1つの答えに対して多くの質問です:)
さて、ドル記号は jQuery ライブラリを呼び出す jQuery の省略形なので、jQuery ステートメントと呼び出しを作成できますね。
はい、同じオブジェクト$
を参照します。jQuery
jQueryのソースから取得:
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;
window
グローバルオブジェクトです。window.$
追加されたものはすべてグローバルに利用できるようになるため、たとえば として、または単に呼び出すことができ$
ます。
(ドキュメント) は、DOM の「最上位」部分 (ウィンドウ以外) を参照するセレクターです。
document
セレクターではなく、 DOMの最上位ノードを参照するDOM オブジェクトです。などの他のプロパティがあります。document.domain
その子の 1 つは<html>
要素です。
.ready は、DOM が完全にロードされたときに発生するアクションです。さて、「DOM」が完全に読み込まれましたが、この場合の DOM は選択されているものを参照していますか?
はい、DOM は通常 jQuery セレクターで選択する項目を指します。より具体的には、ページのメモリ内表現です。ready
DOM がいつ読み込まれたかを判断するために、さまざまなブラウザーの一連のイベントを使用します。
ドキュメントの代わりにボディが選択された場合、ロードされる前にスクリプトが実行されますか?
現在、jQuery のソース コードは、呼び出し時にどのセレクターが渡されたかを気にしませんready
。準備完了関数は次のとおりです。
ready: function( fn ) {
// Attach the listeners
jQuery.bindReady();
// If the DOM is already ready
if ( jQuery.isReady ) {
// Execute the function immediately
fn.call( document, jQuery );
// Otherwise, remember the function for later
} else if ( readyList ) {
// Add the function to the wait list
readyList.push( fn );
}
return this;
},
どのセレクターが渡されるかは気にしないので、それを渡すこともbody
、何も渡さないことも、必要なものを渡すこともできます。
$({
an: 'object',
that: 'has',
nothing: 'to',
'do': 'with',
ready: 'event'
}).ready(function() { .. });
そしてそれはまだ動作します。
(function(){});
この部分は私を少し混乱させます。
ドキュメントが読み込まれると、スクリプトが実行されることはわかっています。言い換えれば、それは私たちの機能を正しく実行しますか?
はい、DOM の準備が整うと、ready イベントにバインドしたこの関数と各関数が実行されます。
スクリプト全体が関数として考えられていますか?
いいえ、スクリプト全体ではありません。DOM に依存するアイテムのみ。見つかったときに処理する必要があるものもあります。jQuery ライブラリ自体について考えてみましょう。処理される前に DOM Ready イベントを待機しません。JavaScript ステートメントを記述すると、 に渡すようなコールバック関数でない限り、見つかった順序で処理されますready(..)
。したがって、以下のコードはすぐに実行され、DOM がロードされているかどうかに関係なく、"hello" というアラートが表示されます。
<script>
function hello() { alert("hello"); }
hello();
</script>
そして、これは実際には 1 つの大きな JavaScript ステートメントにすぎませんよね?
あまり。JavaScript を好きなだけモジュール化できます。たとえば、クラス、オブジェクト、再利用可能なウィジェット、MVC などのアーキテクチャ パターンに似たものを多数持つことができます。
セミコロンで終わるからです。
何かが実行されるとき、セミコロンは何の関係もありません。とても上手に書くことができました。
<script>
alert("Hello"), alert("World")
</script>
これは機能し、2 つの単語を順番に警告し、セミコロンはありません。
また、スクリプトが通常、関数の括弧ではなく、中括弧の間にあるのはなぜですか? 違いはなんですか?
これは、JavaScript や他のいくつかの言語で関数を定義する方法です。理解を深めるために、基本的なスキルを磨いてください。問題を混乱させるだけなので、スクリプトとして参照しないでください。これは、内部にいくつかのステートメントを含む単なる関数です。