這篇文章為大家總結分享一些基於jQuery常見面試題(附答案解析),幫助大家更加好的理解基礎知識,希望對大家有幫助。
相關推薦:2022年大前端面試題總結(收藏)
JavaScript 是客戶端腳本的標準語言,而jQuery 讓編寫JavaScript 更簡單。你可以只用寫幾行的jQuery 程式碼就能實現更多的東西. 它是最長被用到的 JavaScript 庫之一,並且現在已經很少有不用jQuery 而使用原生 JavaScript 的新專案了。這對身為一個Java web 開發者的你而言意味著你會在一場Java web開發面試中發現許多jQuery的面試問題.
早些時候,絕大部分都是HTTP, HTML, CSS 以及JavaScript,但最近開始,除了JavaScript 基礎之外,人們也希望知道你是否熟悉jQuery。這16個jQuery的問題是為web開發者準備的,也能夠非常方便你在參加一次電話或視訊一輪的面試之前糾正一些關鍵的概念。如果你是 jQuery 新手,那麼它也能夠幫助你更好的理解基礎知識,並激勵你去發現更多。
1. jQuery 函式庫中的 $() 是什麼? (答案如下)
$() 函數是 jQuery() 函數的別稱,乍一看這很怪異,也使 jQuery 程式碼晦澀難懂。一旦你適應了,你會愛上它的簡潔。 $() 函數用於將任何物件包裹成 jQuery 對象,接著你就被允許呼叫定義在 jQuery 物件上的多個不同方法。你甚至可以將一個選擇器字串傳入 $() 函數,它會傳回一個包含所有符合的 DOM 元素陣列的 jQuery 物件。這個問題我已經見過好幾次被提及,儘管它非常基礎,它經常被用來區分一個開發人員是否了解 jQuery。 【推薦學習:jQuery影片教學】
2. 網頁上有 5 個 元素,如何使用 jQuery來選擇它們? (答案)
另一個重要的 jQuery 問題是基於選擇器的。 jQuery 支援不同類型的選擇器,例如 ID 選擇器、class 選擇器、標籤選擇器。鑑於這個問題沒提到 ID 和 class,你可以用標籤選擇器來選擇所有的 p 元素。 jQuery 程式碼:$("p"),這樣會傳回一個包含所有 5 個 p 標籤的 jQuery 物件。更詳細的解答請參見上面連結的文章。
3. jQuery 裡的 ID 選擇器和 class 選擇器有何不同? (答案)
如果你用過 CSS,你或許就知道 ID 選擇器和 class 選擇器之間的差異,jQuery 也是如此。 ID 選擇器使用 ID 來選擇元素,例如 #element1,而 class 選擇器使用 CSS class 來選擇元素。當你只需要選擇一個元素時,使用 ID 選擇器,而如果你想要選擇一組相同 CSS class 的元素,就要用 class 選擇器。在面試過程中,你有很大幾率會被要求使用 ID 選擇器和 class 選擇器來寫程式碼。下面的jQuery 程式碼使用了ID 選擇器和class 選擇器:
$('#LoginTextBox') // Returns element wrapped as jQuery object with id='LoginTextBox' $('.active') // Returns all elements with CSS class active.
如你所見,從語法角度來說,ID 選擇器和class 選擇器的另一個不同之處是,前者用字符”#”而後者用字元”。”。更詳細的分析和討論請參見上面的答案連結。
4. 如何在點選一個按鈕時使用 jQuery 隱藏一個圖片?
這是一個事件處理問題。 jQuery為按鈕點擊之類的事件提供了很好的支援。你可以透過以下程式碼去隱藏一個透過ID或class定位到的圖片。你需要知道如何為按鈕設定事件並執行hide() 方法,程式碼如下所示:
$('#ButtonToClick').click(function(){ $('#ImageToHide').hide(); });
#5. $(document).ready() 是個什麼函數?為什麼要用它? (answer)
這個問題很重要,並且常常被問到。 ready() 函數用於在文件進入ready狀態時執行程式碼。當DOM 完全載入(例如HTML被完全解析DOM樹建置完成時),jQuery允許你執行程式碼。使用$(document).ready()的最大好處在於它適用於所有瀏覽器,jQuery幫你解決了跨瀏覽器的難題。需要進一步了解的用戶可以點擊 answer連結查看詳細討論。
6. JavaScript window.onload 事件和 jQuery ready 函數有何不同? (答案)
这个问答是紧接着上一个的。JavaScript window.onload 事件和 jQuery ready 函数之间的主要区别是,前者除了要等待 DOM 被创建还要等到包括大型图片、音频、视频在内的所有外部资源都完全加载。如果加载图片和媒体内容花费了大量时间,用户就会感受到定义在 window.onload 事件上的代码在执行时有明显的延迟。
另一方面,jQuery ready() 函数只需对 DOM 树的等待,而无需对图像或外部资源加载的等待,从而执行起来更快。使用 jQuery $(document).ready() 的另一个优势是你可以在网页里多次使用它,浏览器会按它们在 HTML 页面里出现的顺序执行它们,相反对于 onload 技术而言,只能在单一函数里使用。鉴于这个好处,用 jQuery ready() 函数比用 JavaScript window.onload 事件要更好些。
7. 如何找到所有 HTML select 标签的选中项?(答案如下)
这是面试里比较棘手的 jQuery 问题之一。这是个基础的问题,但是别期望每个 jQuery 初学者都知道它。你能用下面的 jQuery 选择器获取所有具备 multiple=true 的
$('[name=NameOfSelectedTag] :selected')
这段代码结合使用了属性选择器和 :selected 选择器,结果只返回被选中的选项。你可按需修改它,比如用 id 属性而不是 name 属性来获取
8. jQuery 里的 each() 是什么函数?你是如何使用它的?(答案如下)
each() 函数就像是 Java 里的一个 Iterator,它允许你遍历一个元素集合。你可以传一个函数给 each() 方法,被调用的 jQuery 对象会在其每个元素上执行传入的函数。有时这个问题会紧接着上面一个问题,举个例子,如何在 alert 框里显示所有选中项。我们可以用上面的选择器代码找出所有选中项,然后我们在 alert 框中用 each() 方法来一个个打印它们,代码如下:
$('[name=NameOfSelectedTag] :selected').each(function(selected) { alert($(selected).text()); });
其中 text() 方法返回选项的文本。
9. 你是如何将一个 HTML 元素添加到 DOM 树中的?(答案如下)
你可以用 jQuery 方法 appendTo() 将一个 HTML 元素添加到 DOM 树中。这是 jQuery 提供的众多操控 DOM 的方法中的一个。你可以通过 appendTo() 方法在指定的 DOM 元素末尾添加一个现存的元素或者一个新的 HTML 元素。
10. 你能用 jQuery 代码选择所有在段落内部的超链接吗?(答案略)
你可以使用下面这个 jQuery 代码片段来选择所有嵌套在段落(
标签)内部的超链接(标签)
$( 'p a' );
11. $(this) 和 this 关键字在 jQuery 中有何不同?(答案如下)
这对于很多 jQuery 初学者来说是一个棘手的问题,其实是个简单的问题。$(this) 返回一个 jQuery 对象,你可以对它调用多个 jQuery 方法,比如用 text() 获取文本,用val() 获取值等等。而 this 代表当前元素,它是 JavaScript 关键词中的一个,表示上下文中的当前 DOM 元素。你不能对它调用 jQuery 方法,直到它被 $() 函数包裹,例如 $(this)。
12. 你如何使用jQuery来提取一个HTML 标记的属性 例如. 链接的href? (答案)
attr() 方法被用来提取任意一个HTML元素的一个属性的值. 你首先需要利用jQuery选择及选取到所有的链接或者一个特定的链接,然后你可以应用attr()方法来获得他们的href属性的值。下面的代码会找到页面中所有的链接并返回href值:
$('a').each(function(){ alert($(this).attr('href')); });
13. 你如何使用jQuery设置一个属性值? (答案)
前面这个问题之后额外的一个后续问题是,attr()方法和jQuery中的其它方法一样,能力不止一样. 如果你在调用attr()的同时带上一个值 。
对象.attr("name","value");
name是属性的名称,value是这个属性的新值
对象.prop("name","value");
設定多個屬性值:物件.attr("name":"value","name":"value")屬性:屬性值,屬性:屬性值
jquery中attr和prop的區別
對於html元素本身所帶有的固定屬性而言(本身就帶有固定屬性本身有的屬性),處理時,使用prop方法 可以操作布林類型的屬性
對html元素我們自己定義的dom屬性,在處理時,使用attr方法
## 刪除< >元素的dom屬性值有"id、href、class和action",很明顯,前三個是固有屬性,而後面一個action屬性是我們自己定義上去的 元素本身是元素本身是元素本身是沒有屬性的。這種就是自訂的dom屬性。處理這些屬性時,建議使用attr方法,使用prop方法對自訂屬性取值和設定屬性值時,都會傳回undefined值。 像checkbox,radio和select這樣的元素,選中屬性對應“checked”和"selected",這些也屬於固有屬性,因此需要使用prop方法去操作才能獲取正確答案14. jQuery中detach() 和 remove() 方法的差異是什麼?(答案)
# 儘管detach() 和remove() 方法都被用來移除一個DOM元素, 兩者之間的主要不同在於detach() 會保持對過去被解除元素的跟踪, 因此它可以被取消解除,而remove() 方法則會保持過去被移除物件的參考. 你也還可以看看用來在DOM中加入元素的appendTo() 方法.
15. 你如何利用jQuery來為一個元素新增和移除 CSS類別? (答案)透過利用addClass() 和removeClass() 這兩個jQuery 方法。動態的改變元素的class屬性可以很簡單例如. 使用類別「.active"來標記它們的未啟動和啟動狀態,等等
.addClass("類別名稱")
新增元素 .remove() 刪除樣式類別
# 這是一個稍微高階點兒的jQuery問題。好吧,除了報錯節省伺服器頻寬以及更快的下載速度這許多的好處之外, 最重要的是,如果瀏覽器已經從同一個CDN下載類相同的jQuery 版本, 那麼它就不會再去下載它一次. 因此今時今日,許多公共的網站都將jQuery用於用戶交互和動畫, 如果瀏覽器已經有了下載好的jQuery庫,網站就能有非常好的展示機會。
17. jQuery.get() 和jQuery.ajax() 方法之間的差異是什麼?ajax() 方法更強大,更具可配置性, 讓你可以指定等待多久,以及如何處理錯誤。 get() 方法是一個只取得一些資料的專門化方法。
18. jQuery 中的方法鍊是什麼?使用方法鏈有什麼好處?方法鍊是對一個方法返回的結果調用另一個方法,這使得程式碼簡潔明了,同時由於只對 DOM 進行了一輪查找,性能方面更加出色。
19. 你要是在一個 jQuery 事件處理程序裡回傳了 false 會怎麼樣?這通常用於阻止事件向上冒泡。
20. 哪種方式更有效率:document.getElementbyId("myId") 還是 $("#myId")?第一種,因為它直接呼叫了 JavaScript 引擎。
(學習影片分享:
web前端入門教學
以上是看看這些jQuery常見面試題,幫助你更能理解基礎知識!的詳細內容。更多資訊請關注PHP中文網其他相關文章!