摘要:此選擇器等價(jià)于此選擇器等價(jià)于要匹配含有特定屬性但不等于特定值的元素請(qǐng)使用。之前看到的派上了用場(chǎng)。用法返回值集合元素說(shuō)明匹配給定的屬性是以包含某些值的元素。可以包含任意異步操作,而必須是同步函數(shù)。
一面 1. 自我介紹 2. jQuery的選擇器
jQuery的選擇器與css中的選擇器很相似,通過(guò)使用css中的選擇器來(lái)選取HTML節(jié)點(diǎn)
1. #id 用法: $("#myDiv"); 返回值 單個(gè)元素的組成的集合 說(shuō)明: 這個(gè)就是直接選擇html中的id="myDiv" 2. Element 用法: $("div") 返回值 集合元素 說(shuō)明: element的英文翻譯過(guò)來(lái)是”元素”,所以element其實(shí)就是html已經(jīng)定義的標(biāo)簽元素,例如div, input, a等等. 3. class 用法: $(".myClass") 返回值 集合元素 說(shuō)明: 這個(gè)標(biāo)簽是直接選擇html代碼中class="myClass"的元素或元素組(因?yàn)樵谕籬tml頁(yè)面中 class是可以存在多個(gè)同樣值的) 4. * 用法: $("*") 返回值 集合元素 說(shuō)明: 匹配所有元素,多用于結(jié)合上下文來(lái)搜索 5. selector1, selector2, selectorN 用法: $("div,span,p.myClass") 返回值 集合元素 說(shuō)明: 將每一個(gè)選擇器匹配到的元素合并后一起返回.你可以指定任意多個(gè)選擇器, 并將匹配到的元素合 并到一個(gè)結(jié)果內(nèi)。其中p.myClass是表示匹配元素 p class="myClass"
其次可以使用屬性選擇器,例如input中的name,type屬性等
1、[attribute] 用法: $("div[id]") ; 返回值 集合元素 說(shuō)明: 匹配包含給定屬性的元素。例子中是選取了所有帶”id”屬性的div標(biāo)簽。 2、[attribute=value] 用法: $("input[name="newsletter"]").attr("checked", true); 返回值 集合元素 說(shuō)明: 匹配給定的屬性是某個(gè)特定值的元素.例子中選取了所有 name 屬性是 newsletter 的 input 元素。 3、[attribute!=value] 用法: $("div[title!="test"]").css("background","yellow"); 返回值 集合元素 說(shuō)明: 匹配所有不含有指定的屬性,或者屬性不等于特定值的元素。 此選擇器等價(jià)于:not此選擇器等價(jià)于:not([attr=value]),要匹配含有特定屬性但不等于特定值的元素,請(qǐng)使用[attr]:not([attr=value])。之前看到的:not 派上了用場(chǎng)。 4、[attribute^=value] 用法: $(”input[name^=‘news’]“) 返回值 集合元素 說(shuō)明: 匹配給定的屬性是以某些值開(kāi)始的元素.,我們又見(jiàn)到了這幾個(gè)類(lèi)似于正則匹配的符號(hào)。 5、[attribute$=value] 用法: $("input[name$="letter"]") 返回值 集合元素 說(shuō)明: 匹配給定的屬性是以某些值結(jié)尾的元素。 6、[attribute*=value] 用法: $("input[name*="man"]") 返回值 集合元素 說(shuō)明: 匹配給定的屬性是以包含某些值的元素。 7、[attributeFilter1][attributeFilter2][attributeFilterN] 用法: $("input[id][name$="man"]") 返回值 集合元素 說(shuō)明: 復(fù)合屬性選擇器,需要同時(shí)滿(mǎn)足多個(gè)條件時(shí)使用.又是一個(gè)組合,這種情況我們實(shí)際使用的時(shí)候很常用.這個(gè)例子中選擇的是所有含有 id 屬性,并且它的 name 屬性是以 man 結(jié)尾的元素。
其他具體可以查看JQuery_九大選擇器3. 如何尋找子元素a的父元素中帶class="abc"的兄弟節(jié)點(diǎn)
我的想法是首先尋找a標(biāo)簽的全部祖先元素$("a").parents(),然后找到其中class="abc"的元素$("a").parents().filter(".abc"),最后再找到這些節(jié)點(diǎn)的兄弟節(jié)點(diǎn)即可$("a").parents().filter(".abc").siblings()4. 寫(xiě)一個(gè)簡(jiǎn)單的jQuery插件(打印"Hello World")
這個(gè)主要有兩種方法
類(lèi)級(jí)別開(kāi)發(fā)插件
對(duì)象級(jí)別開(kāi)發(fā)
// 一、類(lèi)級(jí)別開(kāi)發(fā)插件 // 1. 直接給jquer添加全局函數(shù) jQuery.printHelloWorld = function(){ console.log("Hello World!!!"); } // 2. 用extend()方法。extend是jquery提供的一個(gè)方法,把多個(gè)對(duì)象合并起來(lái),參數(shù)是object $.extend({ printHelloWorld:function(){ console.log("Hello World!!!"); } }) // 3. 使用命名空間(如果不使用命名空間容易和其他引入的JS庫(kù)里面的同名方法沖突) jQuery.test = { printHelloWorld: function () { console.log("Hello World!!!"); } } // 調(diào)用 $.printHelloWorld(); $.test.printHelloWorld(); // 二、對(duì)象級(jí)別開(kāi)發(fā) // 第一行的;一定要寫(xiě) ;(function($){ $.printHelloWorld = function(){ console.log("Hello World!!!"); } }(jQuery)) // 調(diào)用 $.printHelloWorld();5. 跨域的解決方法
經(jīng)典問(wèn)題,具體參考深入理解前端跨域問(wèn)題的解決方案6. ES6有了解嗎
首先回答了let與const7. Promise解決了什么問(wèn)題let定義變量,相對(duì)于var,它修復(fù)了一些問(wèn)題,比如變量提升、重復(fù)定義等問(wèn)題,并且const 和let的定義具有塊級(jí)作用域;
const定義常量,但是const定義的常量只是值不可變,即基本數(shù)據(jù)類(lèi)型不可變,對(duì)于引用類(lèi)型,因?yàn)樗⒌氖且茫约词故褂?b>const定義的對(duì)象,其屬性還是可變的(這個(gè)當(dāng)時(shí)在論客科技的時(shí)候就有被追問(wèn)到);
然后就說(shuō)到Promise相關(guān)
8. 你覺(jué)得Promise能解決回調(diào)地獄嗎?Promise主要解決了回調(diào)地獄的問(wèn)題;
除了解決回調(diào)地獄,還可以為了我們的代碼更加具有可讀性和可維護(hù)性,我們需要將數(shù)據(jù)請(qǐng)求與數(shù)據(jù)處理明確的區(qū)分開(kāi)來(lái)。
當(dāng)時(shí)面試官問(wèn)這個(gè)問(wèn)題的時(shí)候,我認(rèn)為他問(wèn)的是怎樣正確使用才可以正確解決回調(diào)地獄的問(wèn)題。有一種情況就是即使使用了Promise也同樣會(huì)出現(xiàn)回調(diào)地獄,這是因?yàn)槭褂梅椒ㄥe(cuò)誤了,如下:
// 當(dāng)時(shí)由于剛開(kāi)始接觸Promise還是下意識(shí)的使用這種回調(diào)方法,導(dǎo)致產(chǎn)生了回調(diào)地獄 modifyInfoData().then(function (res) { let info_id = res.body.data; modifyInfoPic(info_id).then(res => { modifyInfoFile(info_id).then(res => { _this.$message({ message: "提交成功", type: "success" }); }) }); }); // 應(yīng)該修改為 modifyInfoData().then(function (res) { let info_id = res.body.data; modifyInfoPic(info_id); }).then(function (res) { let info_id = res.body.data; modifyInfoFile(info_id); }).then(res => { _this.$message({ message: "提交成功", type: "success" }); });9. 現(xiàn)在有兩個(gè)字符串var a = "aaa"和var b = "bbb如何不借助任何函數(shù)和中間變量交換他們
這里只寫(xiě)一個(gè)相對(duì)比較萬(wàn)能的方法,其他可以參考JavaScript交換兩個(gè)變量值的七種解決方案
var a = "aaa"; var b = "bbb"; a = [b, b=a][0]; // 根據(jù)運(yùn)算符優(yōu)先級(jí),首先執(zhí)行b=a,此時(shí)的b直接得到了a的變量值,然后一步數(shù)組索引讓a得到了b的值10. vue中vuex的action和mutation區(qū)別
11. localStorage和SessionStorage區(qū)別只有Mutation可以直接修改State,而Action只能通過(guò)Mutation間接的修改State。
Action 可以包含任意異步操作,而Mutation 必須是同步函數(shù)。(Mutation 的同步主要是為了可以方便我們?cè)赿evtools中檢測(cè)到狀態(tài)的變化)
在組件中Action是使用dispatch分發(fā),如:this.$store.dispatch("updateUserInfo", "nick");; Mutation使用commit,如:this.$store.commit("increment", "nick");
Action中的方法和 Mutation 一樣,最多只有兩個(gè)形參,第一個(gè)為 context,可以為payload,需要傳多個(gè)參數(shù)的時(shí)候可以以對(duì)象的形式傳參。
12. 有一個(gè)數(shù)據(jù),應(yīng)該在vue中的哪個(gè)鉤子函數(shù)中執(zhí)行?localStorage的生命周期是永久性的; sessionStorage 的生命周期是在瀏覽器關(guān)閉前
vue有8大生命周期,用的最多的就是created和 mounted,由于在created階段中已經(jīng)完成了data的初始化,所以我認(rèn)為是可以在這個(gè)階段就向后臺(tái)請(qǐng)求數(shù)據(jù),綁定到data中。13. 如果數(shù)據(jù)量很大,在created執(zhí)行會(huì)不會(huì)很慢?
當(dāng)我回答后,面試官就接下來(lái)問(wèn)了我下一個(gè)問(wèn)題……
當(dāng)時(shí)我是這樣回答的:如果數(shù)據(jù)量很大,向后臺(tái)請(qǐng)求速度很慢,我會(huì)采用異步加載的方式,在獲取數(shù)據(jù)的時(shí)候給頁(yè)面加載一個(gè)loading,使得交互盡量的良好吧。14. 有了解過(guò)多頁(yè)面嗎?有處理過(guò)自適應(yīng)呢? 15. 為什么想做前端? 16. 自我驅(qū)動(dòng)?數(shù)據(jù)驅(qū)動(dòng)? 二面 1. 暑假實(shí)習(xí)過(guò)? 2. 實(shí)習(xí)主要工作內(nèi)容? 3. 有做過(guò)前端的相關(guān)的插件或組件嗎? 4. 怎么理解Vue開(kāi)發(fā)? 5. 實(shí)習(xí)的時(shí)候做怎樣的系統(tǒng)? 6. 怎么理解Vue開(kāi)發(fā)?這兩個(gè)問(wèn)題回答的不是非常的好,希望有人可以幫忙解答一下嗎?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/98338.html
摘要:其中經(jīng)歷了入門(mén)到放棄系列的火熱,想起了此題目,可直到其熱度褪去依然沒(méi)有開(kāi)寫(xiě)。再之前的實(shí)習(xí)也是上午面試下午入職的。 這是前幾篇前端面試文章的結(jié)尾,是很多個(gè)月前就該寫(xiě)下的事情。其中經(jīng)歷了入門(mén)到放棄系列的火熱,想起了此題目,可直到其熱度褪去依然沒(méi)有開(kāi)寫(xiě)。不能再拖了,否則事情估計(jì)都快忘光了。 面試過(guò)程 依然是某金融集團(tuán)的外包,這次換了一個(gè)外包公司。首先是電話(huà)面試,還是還是些常見(jiàn)的前端問(wèn)題,自己...
摘要:阿里巴巴有一群天馬行空腳踏實(shí)地的阿里星。天馬行空腳踏實(shí)地奮斗在阿里巴巴生態(tài)圈里,阿里星們高考狀元清華博士論文達(dá)人的光環(huán)早已褪去,但是不斷學(xué)習(xí),不斷接受挑戰(zhàn),仍然是這些學(xué)霸的本色。 showImg(https://segmentfault.com/img/remote/1460000018728353); 阿里巴巴有一群天馬行空腳踏實(shí)地的阿里星。 阿里巴巴的春季校招已經(jīng)啟動(dòng)。在阿里的技術(shù)...
摘要:阿里巴巴有一群天馬行空腳踏實(shí)地的阿里星。天馬行空腳踏實(shí)地奮斗在阿里巴巴生態(tài)圈里,阿里星們高考狀元清華博士論文達(dá)人的光環(huán)早已褪去,但是不斷學(xué)習(xí),不斷接受挑戰(zhàn),仍然是這些學(xué)霸的本色。 showImg(https://segmentfault.com/img/remote/1460000018728353); 阿里巴巴有一群天馬行空腳踏實(shí)地的阿里星。 阿里巴巴的春季校招已經(jīng)啟動(dòng)。在阿里的技術(shù)...
摘要:數(shù)據(jù)結(jié)構(gòu)和算法樹(shù)快速排序,堆排序,插入排序其實(shí)八大排序算法都應(yīng)該了解一致性算法,一致性算法的應(yīng)用的內(nèi)存結(jié)構(gòu)。如何存儲(chǔ)一個(gè)的。八大排序算法一定要手敲一遍快排,堆排尤其重要。面試是一個(gè)雙向選擇的過(guò)程,不要抱著畏懼的心態(tài)去面試,不利于自己的發(fā)揮。 前言 16年畢業(yè)到現(xiàn)在也近兩年了,最近面試了阿里集團(tuán)(菜鳥(niǎo)網(wǎng)絡(luò),螞蟻金服),網(wǎng)易,滴滴,點(diǎn)我達(dá),最終收到點(diǎn)我達(dá),網(wǎng)易o(hù)ffer,螞蟻金服二面掛掉,...
摘要:中四種修飾符的限制范圍。數(shù)據(jù)結(jié)構(gòu)和算法樹(shù)快速排序,堆排序,插入排序其實(shí)八大排序算法都應(yīng)該了解一致性算法,一致性算法的應(yīng)用的內(nèi)存結(jié)構(gòu)。的部署方式,主從,集群。八大排序算法一定要手敲一遍快排,堆排尤其重要。 前言 15年畢業(yè)到現(xiàn)在也近三年了,最近面試了阿里集團(tuán)(菜鳥(niǎo)網(wǎng)絡(luò),螞蟻金服),網(wǎng)易,滴滴,點(diǎn)我達(dá),最終收到點(diǎn)我達(dá),網(wǎng)易o(hù)ffer,螞蟻金服二面掛掉,菜鳥(niǎo)網(wǎng)絡(luò)一個(gè)月了還在流程中...最終有...
閱讀 3561·2023-04-26 02:10
閱讀 1300·2021-11-22 15:25
閱讀 1668·2021-09-22 10:02
閱讀 907·2021-09-06 15:02
閱讀 3469·2019-08-30 15:55
閱讀 600·2019-08-30 13:58
閱讀 2775·2019-08-30 12:53
閱讀 3042·2019-08-29 12:38