哇,这是一个答案的一大堆问题:)
现在,美元符号是 jQuery 的简写,它调用 jQuery 库,所以我们可以进行 jQuery 语句和调用,对吗?
是的,$
并且jQuery
指的是同一个对象。取自 jQuery 的源代码:
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;
window
是全局对象。添加到其中的任何内容都可以在全局范围内使用,因此您可以将其称为window.$
,或者只是$
举例。
(document) 是一个选择器,它指的是 DOM 的“最高”部分(除了 Window?)。
document
不是选择器,而是一个DOM 对象,指的是 DOM 中最顶层的节点。它具有其他属性,例如document.domain
等。它的子元素之一是<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 就绪事件。如果您编写 JavaScript 语句,它将按照找到的顺序进行处理,除非它是像您传递给的回调函数ready(..)
。因此,无论是否加载了 DOM,下面的代码都会立即执行并警告“hello”。
<script>
function hello() { alert("hello"); }
hello();
</script>
而且,它实际上只是一个大的 JavaScript 语句,对吗?
并不真地。您可以根据需要将 JavaScript 模块化。例如,您可以拥有类似于类、对象、可重用小部件、诸如 MVC 之类的架构模式以及其他一堆东西。
因为它以分号结尾。
分号与执行某事无关。我写得很好。
<script>
alert("Hello"), alert("World")
</script>
这将起作用并按顺序提醒这两个单词,并且没有分号。
另外,为什么我们的脚本通常放在大括号之间,而不是函数的括号?有什么不同?
这是在 JavaScript 和其他几种语言中定义函数的方式。提高你的基本技能以更好地理解。不要将其称为脚本,因为它只会混淆问题。它只是一个函数,里面有一些语句。