版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2025四川九強(qiáng)通信科技有限公司招聘前端開發(fā)工程師擬錄用人員筆試歷年典型考點(diǎn)題庫附帶答案詳解(第1套)一、單項(xiàng)選擇題下列各題只有一個(gè)正確答案,請選出最恰當(dāng)?shù)倪x項(xiàng)(共30題)1、在JavaScript中,以下哪個(gè)方法可以用于檢測一個(gè)對象是否擁有某個(gè)自有屬性(非繼承屬性)?A.Object.keys()B.Ototype.hasOwnProperty()C.Object.getOwnPropertyNames()D.in操作符2、在CSS布局中,下列哪種方式可以實(shí)現(xiàn)元素的絕對居中(同時(shí)水平和垂直居中)?A.margin:auto;B.float:center;C.position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);D.display:inline-block;text-align:center;3、關(guān)于JavaScript中的事件循環(huán)(EventLoop),以下說法正確的是?A.宏任務(wù)先執(zhí)行,微任務(wù)隊(duì)列為空時(shí)才執(zhí)行下一個(gè)宏任務(wù)B.setTimeout屬于微任務(wù)C.Promise的回調(diào)屬于宏任務(wù)D.微任務(wù)在當(dāng)前宏任務(wù)結(jié)束后立即執(zhí)行4、在Vue3中,用于創(chuàng)建響應(yīng)式數(shù)據(jù)的API是?A.reactive()和ref()B.defineProperty()C.observe()D.newVue()5、以下關(guān)于HTTP緩存機(jī)制的說法,哪一項(xiàng)是正確的?A.Cache-Control:no-cache表示完全不緩存B.強(qiáng)緩存優(yōu)先于協(xié)商緩存生效C.ETag用于強(qiáng)緩存驗(yàn)證D.Expires的優(yōu)先級高于Cache-Control6、在JavaScript中,執(zhí)行以下代碼的輸出結(jié)果是什么?
console.log(1+'2'+3-4);A."123-4"B.1234C.119D.NaN7、以下關(guān)于HTML5語義化標(biāo)簽的描述,哪一項(xiàng)是正確的?A.`<div>`和`<span>`是HTML5新增的語義化標(biāo)簽B.`<section>`表示頁面中獨(dú)立的區(qū)域,應(yīng)包含自己的標(biāo)題C.`<article>`只能用于博客文章,不能用于評論D.`<nav>`標(biāo)簽只能出現(xiàn)在頁面頂部8、在CSS中,以下哪種方式不能實(shí)現(xiàn)元素的水平垂直居中?A.使用`position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)`B.設(shè)置`display:flex;justify-content:center;align-items:center`C.使用`float:center;vertical-align:middle`D.利用`margin:auto`配合`position:absolute`和固定寬高9、關(guān)于JavaScript事件循環(huán)機(jī)制,下列說法正確的是?A.`setTimeout`回調(diào)函數(shù)屬于宏任務(wù),會(huì)在當(dāng)前調(diào)用棧清空后立即執(zhí)行B.`Promise.then()`中的回調(diào)屬于微任務(wù),會(huì)在當(dāng)前宏任務(wù)結(jié)束后立即執(zhí)行C.所有異步操作的回調(diào)都屬于微任務(wù)D.微任務(wù)的執(zhí)行優(yōu)先級低于宏任務(wù)10、Vue.js中,關(guān)于`v-model`的描述,哪一項(xiàng)是正確的?A.`v-model`只能用于`<input>`元素,不能用于組件B.`v-model`在組件中默認(rèn)綁定`value`屬性并監(jiān)聽`input`事件C.`v-model`本質(zhì)上是`:value`和`@change`的語法糖D.在Vue3中,`v-model`默認(rèn)使用`modelValue`和`update:modelValue`11、在JavaScript中,以下哪段代碼能夠正確檢測一個(gè)變量是否為數(shù)組類型?A.typeofarr==='array'B.arrinstanceofArrayC.Array.isArray(arr)D.arr.constructor===Array12、在CSS布局中,以下哪種方式無法實(shí)現(xiàn)元素的水平垂直居中?A.使用position:absolute與transform:translate(-50%,-50%)B.使用display:flex,配合justify-content和align-itemsC.使用float:centerD.使用margin:auto配合絕對定位和寬高已知13、關(guān)于Vue.js中的響應(yīng)式原理,下列說法正確的是?A.Vue3使用Object.defineProperty實(shí)現(xiàn)響應(yīng)式B.Vue2通過Proxy攔截對象屬性操作C.Vue3使用Proxy替代了Object.definePropertyD.響應(yīng)式系統(tǒng)無法監(jiān)聽數(shù)組的變化14、在HTTP協(xié)議中,GET與POST請求的本質(zhì)區(qū)別不包括以下哪項(xiàng)?A.GET請求參數(shù)在URL中可見,POST在請求體中B.GET請求不能發(fā)送數(shù)據(jù),POST可以C.GET請求一般用于獲取數(shù)據(jù),POST用于提交數(shù)據(jù)D.GET請求有長度限制,POST理論上無限制15、下列關(guān)于JavaScript事件循環(huán)(EventLoop)的描述,正確的是?A.宏任務(wù)執(zhí)行完才執(zhí)行微任務(wù)B.setTimeout屬于微任務(wù)C.Promise.then屬于微任務(wù)D.同步代碼執(zhí)行前先執(zhí)行微任務(wù)隊(duì)列16、在JavaScript中,以下哪個(gè)方法可以用于檢測一個(gè)對象是否擁有某個(gè)自有屬性(不包括原型鏈上的屬性)?A.hasOwnProperty()B.propertyIsEnumerable()C.in操作符D.Object.keys()17、關(guān)于CSS中的“BFC(塊級格式化上下文)”,以下哪項(xiàng)描述是錯(cuò)誤的?A.BFC可以阻止元素的外邊距合并B.BFC內(nèi)部的元素不會(huì)影響外部布局C.浮動(dòng)元素不會(huì)創(chuàng)建BFCD.overflow值為hidden或auto可觸發(fā)BFC18、在Vue3中,以下哪個(gè)組合式API用于在組件掛載后執(zhí)行副作用操作?A.onBeforeMountB.onMountedC.onUpdatedD.onBeforeUpdate19、關(guān)于HTTP緩存機(jī)制,以下哪個(gè)響應(yīng)頭用于設(shè)置資源的強(qiáng)緩存?A.ExpiresB.Last-ModifiedC.ETagD.Cache-Control:no-cache20、在React中,以下哪種方式最適合用于存儲(chǔ)組件的可變狀態(tài),且其變化能觸發(fā)重新渲染?A.使用普通變量letstate=0B.使用useRef()C.使用useState()D.使用全局window.state21、在JavaScript中,執(zhí)行以下代碼的輸出結(jié)果是什么?
console.log(1+'2'+3-4);A.1234B.122C.119D.NaN22、以下哪項(xiàng)最能準(zhǔn)確描述CSS中`flex:1`的含義?A.flex-grow:1,flex-shrink:0,flex-basis:0%B.flex-grow:1,flex-shrink:1,flex-basis:0%C.flex-grow:1,flex-shrink:1,flex-basis:autoD.flex-grow:1,flex-shrink:1,flex-basis:100%23、關(guān)于JavaScript事件循環(huán)(EventLoop),以下說法正確的是?A.宏任務(wù)執(zhí)行完所有微任務(wù)后才執(zhí)行下一個(gè)宏任務(wù)B.setTimeout屬于微任務(wù)隊(duì)列C.Promise.then是宏任務(wù)D.事件循環(huán)先執(zhí)行宏任務(wù)隊(duì)列,再清空微任務(wù)隊(duì)列24、Vue3中,以下哪種方式不能正確響應(yīng)式地修改數(shù)組元素?A.使用Vue.set(vm.items,indexOfItem,newValue)B.使用this.items[indexOfItem]=newValueC.使用this.items.splice(index,1,newValue)D.使用this.items=this.items.map(...)25、在HTTP緩存機(jī)制中,以下哪個(gè)響應(yīng)頭字段優(yōu)先級最高?A.Cache-ControlB.ExpiresC.ETagD.Last-Modified26、在JavaScript中,執(zhí)行以下代碼后,輸出的結(jié)果是什么?
```javascript
console.log(1+'2'+3-4);
```A.1234B.12-1C.119D.NaN27、以下關(guān)于CSS中`box-sizing`屬性的描述,哪一項(xiàng)是正確的?A.`box-sizing:content-box`時(shí),width包含padding和borderB.`box-sizing:border-box`時(shí),width不包含padding和borderC.`box-sizing:border-box`是現(xiàn)代布局中常用的值,便于控制元素總尺寸D.`box-sizing`默認(rèn)值為`border-box`28、在Vue3中,`ref`和`reactive`的主要區(qū)別是什么?A.`ref`只能用于基本類型,`reactive`只能用于對象B.`ref`創(chuàng)建的響應(yīng)式數(shù)據(jù)需通過`.value`訪問,`reactive`不需要C.`ref`不能用于對象,`reactive`不能用于數(shù)組D.`reactive`的性能優(yōu)于`ref`,應(yīng)優(yōu)先使用29、在瀏覽器環(huán)境中,以下代碼的輸出順序是?
```javascript
console.log('A');
setTimeout(()=>console.log('B'),0);
Promise.resolve().then(()=>console.log('C'));
console.log('D');
```A.A,B,C,DB.A,D,B,CC.A,D,C,BD.A,C,D,B30、在JavaScript中,下列哪個(gè)方法可以用于檢測一個(gè)對象自身是否具有指定的屬性(不包括繼承的屬性)?A.Object.keys()B.Object.hasOwnProperty()C.Object.getOwnPropertyNames()D.Object.isExtensible()二、多項(xiàng)選擇題下列各題有多個(gè)正確答案,請選出所有正確選項(xiàng)(共15題)31、在JavaScript中,下列哪些方式可以實(shí)現(xiàn)變量的聲明?A.varB.letC.constD.define32、關(guān)于HTML5語義化標(biāo)簽,下列哪些元素有助于提升網(wǎng)頁可訪問性和SEO?A.<div>B.<article>C.<section>D.<span>33、在CSS布局中,下列哪些屬性設(shè)置可以觸發(fā)BFC(塊格式化上下文)?A.float:leftB.display:inline-blockC.overflow:hiddenD.position:absolute34、關(guān)于HTTP緩存機(jī)制,下列哪些響應(yīng)頭可用于強(qiáng)緩存?A.Cache-ControlB.ExpiresC.ETagD.Last-Modified35、Vue.js中,關(guān)于組件通信方式,下列哪些適用于父子組件間數(shù)據(jù)傳遞?A.propsB.$emitC.VuexD.$attrs/$listeners36、在JavaScript中,以下哪些方式可以實(shí)現(xiàn)變量的聲明?A.varB.letC.constD.define37、關(guān)于CSS盒模型,以下哪些屬性會(huì)影響元素的實(shí)際占用寬度?A.widthB.paddingC.borderD.margin38、以下關(guān)于HTML5語義化標(biāo)簽的描述,哪些是正確的?A.`<article>`表示獨(dú)立的內(nèi)容區(qū)塊,如博客文章B.`<section>`代表文檔中的一個(gè)區(qū)域或章節(jié)C.`<div>`是語義化標(biāo)簽D.`<nav>`用于定義主導(dǎo)航鏈接區(qū)域39、在前端開發(fā)中,以下哪些方法可用于跨域請求數(shù)據(jù)?A.JSONPB.CORSC.postMessageD.使用iframe直接訪問不同源的DOM40、關(guān)于Vue.js的響應(yīng)式原理,以下說法正確的有哪些?A.Vue2使用Object.defineProperty實(shí)現(xiàn)數(shù)據(jù)劫持B.Vue3使用Proxy替代了Object.definePropertyC.響應(yīng)式僅對已存在的屬性有效D.數(shù)組的push、pop等方法在Vue中可自動(dòng)觸發(fā)視圖更新41、在JavaScript中,關(guān)于變量提升(Hoisting)的描述,以下哪些說法是正確的?A.使用`var`聲明的變量會(huì)被提升到其作用域的頂部B.使用`let`和`const`聲明的變量不存在變量提升C.函數(shù)聲明會(huì)被提升,且函數(shù)聲明的優(yōu)先級高于變量聲明D.變量提升會(huì)導(dǎo)致`let`聲明的變量在聲明前可以訪問但值為`undefined`42、關(guān)于CSS盒模型的描述,以下哪些說法是正確的?A.標(biāo)準(zhǔn)盒模型中,元素的寬度僅包含內(nèi)容區(qū)域(content)B.IE盒模型中,`width`包括內(nèi)容、內(nèi)邊距和邊框C.使用`box-sizing:border-box`可使元素采用IE盒模型D.外邊距(margin)始終不參與元素總寬度的計(jì)算43、關(guān)于HTML5語義化標(biāo)簽的使用,以下哪些標(biāo)簽適合用于構(gòu)建頁面結(jié)構(gòu)?A.`<section>`表示文檔中的獨(dú)立章節(jié)或部分B.`<div>`是語義最清晰的布局容器C.`<article>`用于包裹獨(dú)立、可復(fù)用的內(nèi)容,如博客文章D.`<aside>`用于展示與主內(nèi)容間接相關(guān)的內(nèi)容,如側(cè)邊欄44、關(guān)于ES6模塊(import/export)的特性,以下哪些描述是正確的?A.`exportdefault`一個(gè)模塊中只能有一個(gè)B.`import`可以在代碼的任意位置動(dòng)態(tài)調(diào)用C.模塊默認(rèn)處于嚴(yán)格模式D.使用`*as`可以導(dǎo)入模塊的所有導(dǎo)出內(nèi)容45、關(guān)于瀏覽器事件循環(huán)(EventLoop)機(jī)制,以下哪些說法是正確的?A.宏任務(wù)(macrotask)執(zhí)行完后,會(huì)優(yōu)先執(zhí)行微任務(wù)隊(duì)列中的所有任務(wù)B.`setTimeout`回調(diào)屬于微任務(wù)C.`Promise.then`回調(diào)屬于微任務(wù)D.每次事件循環(huán)只會(huì)執(zhí)行一個(gè)宏任務(wù)三、判斷題判斷下列說法是否正確(共10題)46、在JavaScript中,`null`和`undefined`都表示“無值”,因此它們在嚴(yán)格相等(===)比較下返回true。A.正確B.錯(cuò)誤47、使用`let`聲明的變量會(huì)在其作用域內(nèi)發(fā)生變量提升,但不會(huì)被初始化,因此在聲明前訪問會(huì)拋出ReferenceError。A.正確B.錯(cuò)誤48、在CSS中,`em`單位是相對于當(dāng)前元素字體大小的單位,而`rem`是相對于根元素(html)字體大小的單位。A.正確B.錯(cuò)誤49、在React中,函數(shù)組件可以通過使用useStateHook來管理內(nèi)部狀態(tài),且每次狀態(tài)更新都會(huì)觸發(fā)組件重新渲染。A.正確B.錯(cuò)誤50、在HTTP協(xié)議中,GET請求方法可以攜帶請求體(requestbody),并且常用于提交表單數(shù)據(jù)。A.正確B.錯(cuò)誤51、在JavaScript中,`==`運(yùn)算符在比較時(shí)會(huì)進(jìn)行類型轉(zhuǎn)換,而`===`則不會(huì)進(jìn)行類型轉(zhuǎn)換,只比較值和類型是否都相等。A.正確B.錯(cuò)誤52、在CSS中,`position:fixed;`元素是相對于瀏覽器視口定位的,即使頁面滾動(dòng),其位置也不會(huì)改變。A.正確B.錯(cuò)誤53、HTML5中的`<section>`標(biāo)簽和`<div>`標(biāo)簽在語義上沒有區(qū)別,可以隨意互換使用。A.正確B.錯(cuò)誤54、在Vue.js中,`v-model`指令本質(zhì)上是`:value`和`@input`的語法糖,適用于表單元素的雙向數(shù)據(jù)綁定。A.正確B.錯(cuò)誤55、使用`let`聲明的變量會(huì)在其所在塊級作用域內(nèi)形成暫時(shí)性死區(qū),即在聲明前訪問該變量會(huì)報(bào)錯(cuò)。A.正確B.錯(cuò)誤
參考答案及解析1.【參考答案】B【解析】hasOwnProperty()是Ototype上的方法,用于判斷對象是否包含指定的自有屬性,不包括原型鏈上的繼承屬性。而in操作符會(huì)檢查包括原型鏈在內(nèi)的所有屬性;Object.keys()和Object.getOwnPropertyNames()返回屬性名數(shù)組,不能直接用于布爾判斷。因此,檢測自有屬性最準(zhǔn)確的方法是使用hasOwnProperty()。2.【參考答案】C【解析】選項(xiàng)C通過絕對定位將元素移至父容器50%位置,再用transform反向移動(dòng)自身寬高的一半,實(shí)現(xiàn)精準(zhǔn)居中。margin:auto配合定寬高和絕對定位可實(shí)現(xiàn)水平居中,但垂直居中需額外設(shè)置;float無center值;inline-block依賴文本對齊,僅適用于內(nèi)聯(lián)場景。因此C為最通用可靠的絕對居中方案。3.【參考答案】D【解析】事件循環(huán)機(jī)制中,每個(gè)宏任務(wù)執(zhí)行完畢后,會(huì)清空當(dāng)前所有的微任務(wù)隊(duì)列,再執(zhí)行下一個(gè)宏任務(wù)。Promise.then()回調(diào)屬于微任務(wù),setTimeout屬于宏任務(wù)。因此微任務(wù)具有更高優(yōu)先級,在本輪宏任務(wù)結(jié)束后立即執(zhí)行。選項(xiàng)D準(zhǔn)確描述了這一機(jī)制,其他選項(xiàng)對任務(wù)分類或執(zhí)行順序理解錯(cuò)誤。4.【參考答案】A【解析】Vue3中通過reactive()創(chuàng)建響應(yīng)式對象,ref()創(chuàng)建可響應(yīng)的基本類型數(shù)據(jù),兩者是CompositionAPI的核心。defineProperty是Vue2實(shí)現(xiàn)響應(yīng)式的底層方法;observe是Vue2內(nèi)部方法;newVue()是Vue2的實(shí)例化方式。Vue3推薦使用reactive和ref在setup中組織邏輯,實(shí)現(xiàn)更靈活的響應(yīng)式編程。5.【參考答案】B【解析】瀏覽器緩存遵循先強(qiáng)緩存后協(xié)商緩存的流程。強(qiáng)緩存命中時(shí)直接使用本地資源,不發(fā)請求;未命中則進(jìn)入?yún)f(xié)商緩存,通過ETag或Last-Modified驗(yàn)證資源是否更新。Cache-Control:no-cache表示跳過強(qiáng)緩存,但仍可使用協(xié)商緩存;ETag屬于協(xié)商緩存字段;Expires是HTTP/1.0字段,Cache-Control為HTTP/1.1標(biāo)準(zhǔn),優(yōu)先級更高。故B正確。6.【參考答案】C【解析】首先,1+'2'會(huì)進(jìn)行字符串拼接,結(jié)果為字符串"12";接著"12"+3變?yōu)?123";然后"123"-4執(zhí)行減法運(yùn)算,JavaScript會(huì)嘗試將字符串轉(zhuǎn)為數(shù)字,"123"轉(zhuǎn)為123,減去4得119。因此最終輸出119。注意:加法涉及字符串時(shí)為拼接,減法始終為數(shù)值運(yùn)算。7.【參考答案】B【解析】`<section>`用于定義文檔中的一個(gè)獨(dú)立章節(jié)或區(qū)域,通常應(yīng)包含標(biāo)題(如`<h1>`-`<h6>`),體現(xiàn)內(nèi)容結(jié)構(gòu)。`<div>`和`<span>`并非語義化標(biāo)簽;`<article>`適用于任何獨(dú)立內(nèi)容,如文章、評論、帖子等;`<nav>`可出現(xiàn)在頁面任意位置,不限于頂部。語義化標(biāo)簽提升可訪問性和SEO。8.【參考答案】C【解析】`float`屬性沒有"center"值,僅支持left、right、none等;`vertical-align`僅對行內(nèi)元素或表格單元格有效,不能使塊級元素居中。A、B、D均為常見居中方案:A為定位+變換,B為彈性布局,D為絕對定位+自動(dòng)外邊距。C語法錯(cuò)誤且原理不成立。9.【參考答案】B【解析】事件循環(huán)中,宏任務(wù)(如`setTimeout`)執(zhí)行完后,會(huì)優(yōu)先清空微任務(wù)隊(duì)列(如`Promise.then`)。微任務(wù)在當(dāng)前宏任務(wù)結(jié)束后立即執(zhí)行,且具有更高優(yōu)先級。A錯(cuò)誤:`setTimeout`回調(diào)不會(huì)“立即”執(zhí)行,需等待時(shí)間到期并排隊(duì);C錯(cuò)誤:`setTimeout`是宏任務(wù);D錯(cuò)誤:微任務(wù)優(yōu)先級更高。10.【參考答案】D【解析】Vue3中,`v-model`在組件上默認(rèn)使用`modelValue`作為prop,通過`$emit('update:modelValue')`同步數(shù)據(jù),取代了Vue2中的`value`和`input`。A錯(cuò)誤:`v-model`可用于組件;B錯(cuò)誤:Vue3已變更;C錯(cuò)誤:應(yīng)為`@input`事件。D符合Vue3規(guī)范。11.【參考答案】C【解析】`typeof`無法識(shí)別數(shù)組,返回的是'object',故A錯(cuò)誤;`instanceof`在跨全局對象(如iframe)時(shí)可能失效;`constructor`易被重寫,不可靠;`Array.isArray()`是ES5標(biāo)準(zhǔn)方法,專門用于精確判斷是否為數(shù)組,兼容性好且最推薦,因此答案為C。12.【參考答案】C【解析】`float`屬性沒有`center`值,僅支持left、right、none等,因此C語法錯(cuò)誤;A利用定位+位移居中,B是Flex布局標(biāo)準(zhǔn)居中方法,D在寬高固定時(shí)可通過設(shè)置top、left和margin:auto實(shí)現(xiàn)居中。故只有C無法實(shí)現(xiàn),答案為C。13.【參考答案】C【解析】Vue2使用`Object.defineProperty`監(jiān)聽對象屬性,存在對新增/刪除屬性無法監(jiān)聽的缺陷;Vue3改用`Proxy`實(shí)現(xiàn),可監(jiān)聽整個(gè)對象變化,包括屬性增刪和數(shù)組操作,響應(yīng)更全面。因此A、B、D錯(cuò)誤,C正確。14.【參考答案】B【解析】GET請求可通過URL傳遞數(shù)據(jù),并非“不能發(fā)送數(shù)據(jù)”;其主要區(qū)別在于數(shù)據(jù)位置(URLvs請求體)、安全性、緩存機(jī)制及長度限制。POST更適合傳輸大量或敏感數(shù)據(jù)。因此B表述錯(cuò)誤,為正確答案。15.【參考答案】C【解析】事件循環(huán)執(zhí)行順序?yàn)椋和酱a→微任務(wù)(如Promise.then)→宏任務(wù)(如setTimeout)。微任務(wù)在當(dāng)前宏任務(wù)結(jié)束后立即執(zhí)行;setTimeout是典型的宏任務(wù);同步代碼最先執(zhí)行。因此C正確,A、B、D錯(cuò)誤。16.【參考答案】A【解析】hasOwnProperty()方法用于判斷對象是否包含指定的自有屬性,不查找原型鏈,符合題意。in操作符會(huì)檢查自有屬性和原型鏈上的屬性,范圍更廣。propertyIsEnumerable()雖然也檢測自有屬性,但還要求屬性可枚舉,條件更嚴(yán)格。Object.keys()返回所有可枚舉自有屬性的數(shù)組,不能直接用于布爾判斷。因此最準(zhǔn)確的是hasOwnProperty()。17.【參考答案】C【解析】浮動(dòng)元素(float不為none)、絕對定位元素、display為inline-block、flexitem、以及overflow為hidden/auto的元素均可觸發(fā)BFC,因此C項(xiàng)說法錯(cuò)誤。BFC的作用包括隔離內(nèi)部布局、防止外邊距合并、包含浮動(dòng)等。A、B、D均為BFC的正確特性,故答案為C。18.【參考答案】B【解析】onMounted在組件掛載完成后執(zhí)行,適合進(jìn)行DOM操作、事件綁定或發(fā)送網(wǎng)絡(luò)請求等副作用操作。onBeforeMount在掛載前執(zhí)行,此時(shí)DOM尚未渲染。onUpdated和onBeforeUpdate針對更新階段,不適用于掛載后首次執(zhí)行的邏輯。因此,正確答案是onMounted。19.【參考答案】A【解析】Expires指定資源的過期時(shí)間,屬于強(qiáng)緩存,瀏覽器在有效期內(nèi)直接使用緩存。Cache-Control中的max-age也是強(qiáng)緩存,但no-cache表示不使用強(qiáng)緩存,需重新驗(yàn)證。Last-Modified和ETag屬于協(xié)商緩存,用于服務(wù)器驗(yàn)證資源是否更新。因此,設(shè)置強(qiáng)緩存的響應(yīng)頭是Expires。20.【參考答案】C【解析】useState()是React提供的Hook,用于聲明組件狀態(tài),其更新會(huì)觸發(fā)組件重新渲染。普通變量和window.state的修改不會(huì)觸發(fā)視圖更新。useRef()雖可存儲(chǔ)可變數(shù)據(jù),但其變化不會(huì)引起重渲染。因此,只有useState()符合“狀態(tài)變化觸發(fā)渲染”的要求,是管理組件狀態(tài)的正確方式。21.【參考答案】C【解析】該表達(dá)式涉及類型轉(zhuǎn)換。首先,1+'2'得到字符串'12';接著'12'+3得到'123';最后'123'-4執(zhí)行減法運(yùn)算,字符串被轉(zhuǎn)換為數(shù)字,123-4=119。減法操作符觸發(fā)隱式類型轉(zhuǎn)換,因此結(jié)果為數(shù)字119。關(guān)鍵在于加法與減法的優(yōu)先級相同,從左到右執(zhí)行,但加法在字符串存在時(shí)為拼接,而減法始終嘗試轉(zhuǎn)為數(shù)值運(yùn)算。22.【參考答案】B【解析】`flex:1`是`flex`屬性的簡寫形式,等價(jià)于`flex:110%`,即`flex-grow:1`(可放大)、`flex-shrink:1`(可縮?。flex-basis:0%`(初始主軸尺寸為0,空間按比例分配)。該設(shè)置常用于等分布局,使子項(xiàng)按比例占據(jù)容器剩余空間。選項(xiàng)B完全符合CSS規(guī)范中對`flex:1`的定義,是實(shí)際開發(fā)中常見用法。23.【參考答案】A【解析】事件循環(huán)機(jī)制中,每次執(zhí)行一個(gè)宏任務(wù)(如script主代碼、setTimeout),執(zhí)行完畢后會(huì)清空當(dāng)前所有微任務(wù)(如Promise.then、MutationObserver),再執(zhí)行下一個(gè)宏任務(wù)。因此A正確。B錯(cuò)誤:setTimeout是宏任務(wù);C錯(cuò)誤:Promise.then是微任務(wù);D順序描述顛倒。理解事件循環(huán)對掌握異步執(zhí)行順序至關(guān)重要,尤其在處理Promise、async/await時(shí)。24.【參考答案】B【解析】Vue3使用Proxy實(shí)現(xiàn)響應(yīng)式,但直接通過索引設(shè)置數(shù)組元素(如this.items[0]=val)在某些情況下可能不會(huì)觸發(fā)視圖更新,尤其在索引超出原長度時(shí)。雖然Proxy比Vue2的defineProperty有改進(jìn),但直接索引賦值仍被官方不推薦。A是Vue2寫法,Vue3中不需使用;B不能保證響應(yīng)式;C和D是官方推薦方式(splice或替換數(shù)組)。最佳實(shí)踐是使用splice或函數(shù)式編程方法。25.【參考答案】A【解析】Cache-Control是HTTP/1.1中最重要的緩存控制頭,具有最高優(yōu)先級,可設(shè)置public、private、max-age等指令,覆蓋舊的Expires頭。Expires是絕對時(shí)間,易受客戶端時(shí)間誤差影響。ETag和Last-Modified用于協(xié)商緩存(304判斷),在強(qiáng)緩存(Cache-Control生效)未命中時(shí)才起作用。因此,當(dāng)Cache-Control與Expires沖突時(shí),以Cache-Control為準(zhǔn),它是現(xiàn)代前端性能優(yōu)化的核心配置。26.【參考答案】C【解析】表達(dá)式從左到右執(zhí)行。首先`1+'2'`是字符串拼接,結(jié)果為`'12'`;接著`'12'+3`仍是字符串拼接,得`'123'`;然后`'123'-4`涉及減法運(yùn)算符,會(huì)嘗試將字符串轉(zhuǎn)為數(shù)字,`'123'`轉(zhuǎn)為123,123-4=119。因此輸出為119,選C。27.【參考答案】C【解析】默認(rèn)`box-sizing`值為`content-box`,此時(shí)width僅指內(nèi)容區(qū),padding和border會(huì)額外增加元素總尺寸。使用`border-box`時(shí),width和height包含內(nèi)容、padding和border,更利于布局控制?,F(xiàn)代開發(fā)中普遍重置為`border-box`,故C正確。28.【參考答案】B【解析】`ref`用于任意類型(包括基本類型和對象),返回一個(gè)帶`.value`的響應(yīng)式對象;`reactive`僅用于對象類型,直接返回響應(yīng)式對象,無需`.value`。雖然`ref`在模板中可自動(dòng)解包,但在腳本中必須用`.value`訪問,這是二者核心區(qū)別,故選B。29.【參考答案】C【解析】同步任務(wù)先執(zhí)行,輸出A、D。`setTimeout`屬于宏任務(wù),進(jìn)入宏任務(wù)隊(duì)列;`Promise.then`是微任務(wù),執(zhí)行時(shí)機(jī)在當(dāng)前同步代碼結(jié)束后、下一個(gè)宏任務(wù)前。因此先輸出C(微任務(wù)),再執(zhí)行B(宏任務(wù))。輸出順序?yàn)锳、D、C、B,選C。30.【參考答案】B【解析】`hasOwnProperty()`是Ototype上的方法,專門用于判斷對象自身是否包含某個(gè)屬性,不包括原型鏈上的繼承屬性。例如:`{x:1}.hasOwnProperty('x')`返回true,而`'x'inobj`可能包含繼承屬性。`Object.keys()`返回可枚舉的自身屬性名數(shù)組,`getOwnPropertyNames()`返回所有自身屬性(包括不可枚舉),但二者不直接用于布爾判斷。`isExtensible()`判斷對象是否可擴(kuò)展,與屬性檢測無關(guān)。因此,正確答案為B。31.【參考答案】A、B、C【解析】JavaScript中,var、let和const均為合法的變量聲明關(guān)鍵字。var存在變量提升和函數(shù)作用域問題;let和const是ES6引入的,支持塊級作用域,const用于聲明常量,值不可重新賦值。define并非變量聲明關(guān)鍵字,而是CommonJS或AMD模塊中用于定義模塊的方法,不屬于變量聲明語法。32.【參考答案】B、C【解析】<article>表示獨(dú)立內(nèi)容區(qū)塊,如博客文章;<section>表示文檔的一個(gè)區(qū)域或章節(jié),均具有明確語義,有利于搜索引擎和屏幕閱讀器識(shí)別。而<div>和<span>是無語義的通用容器,不提供結(jié)構(gòu)信息,不利于語義化構(gòu)建頁面。33.【參考答案】A、B、C、D【解析】以上四種方式均可觸發(fā)BFC。BFC是Web頁面中一種獨(dú)立的渲染區(qū)域,可解決外邊距塌陷、浮動(dòng)元素高度塌陷等問題。常見觸發(fā)方式包括浮動(dòng)、絕對定位、inline-block、table-cell及overflow非visible值等。34.【參考答案】A、B【解析】強(qiáng)緩存由Cache-Control和Expires控制,瀏覽器直接使用本地緩存而不發(fā)起請求。Cache-Control是HTTP/1.1標(biāo)準(zhǔn),優(yōu)先級高;Expires是HTTP/1.0字段,表示絕對時(shí)間。ETag和Last-Modified用于協(xié)商緩存,需發(fā)起請求驗(yàn)證資源是否更新。35.【參考答案】A、B、D【解析】props用于父向子傳遞數(shù)據(jù),$emit用于子組件觸發(fā)事件向父組件通信,屬于直接父子通信。$attrs和$listeners可實(shí)現(xiàn)屬性和事件的透傳,適用于多層嵌套。Vuex是狀態(tài)管理方案,適用于復(fù)雜跨組件通信,但非專用于父子通信。36.【參考答案】A、B、C【解析】JavaScript中,var、let和const均為合法的變量聲明關(guān)鍵字。var存在變量提升和函數(shù)作用域問題;let和const是ES6引入的,支持塊級作用域,其中const用于聲明常量。define并非JavaScript中的變量聲明關(guān)鍵字,而是常用于模塊定義(如AMD中的define函數(shù)),不能用于普通變量聲明,因此不選D。37.【參考答案】A、B、C、D【解析】在標(biāo)準(zhǔn)盒模型中,元素的總寬度=width+左右padding+左右border+左右margin。width設(shè)定內(nèi)容區(qū)寬度;padding和border屬于盒模型內(nèi)部結(jié)構(gòu),增加實(shí)際占用空間;margin雖不屬元素自身尺寸,但影響其在頁面中占據(jù)的總空間。因此四個(gè)選項(xiàng)均正確。38.【參考答案】A、B、D【解析】HTML5引入語義化標(biāo)簽以提升可讀性和SEO。`<article>`表示可獨(dú)立分發(fā)的內(nèi)容;`<section>`表示主題相關(guān)的文檔區(qū)塊;`<nav>`定義導(dǎo)航鏈接區(qū)域。而`<div>`是無語義的通用容器,不屬于語義化標(biāo)簽,故C錯(cuò)誤。39.【參考答案】A、B、C【解析】JSONP利用script標(biāo)簽跨域獲取數(shù)據(jù),僅支持GET;CORS通過服務(wù)器設(shè)置響應(yīng)頭實(shí)現(xiàn)跨域資源共享;postMessage實(shí)現(xiàn)不同窗口間安全通信。而直接訪問不同源的iframeDOM違反同源策略,會(huì)觸發(fā)安全限制,不可行,故D錯(cuò)誤。40.【參考答案】A、B、C、D【解析】Vue2通過Object.defineProperty監(jiān)聽屬性變化,存在對新增屬性無法監(jiān)聽的問題;Vue3使用Proxy解決了該缺陷。響應(yīng)式初始化時(shí)僅處理已有屬性,新增需用Vue.set。Vue對數(shù)組變異方法(如push、pop)進(jìn)行了攔截,可觸發(fā)更新,因此所有選項(xiàng)均正確。41.【參考答案】A、C【解析】使用`var`聲明的變量和函數(shù)聲明都會(huì)發(fā)生變量提升,`var`變量提升后初始化為`undefined`;函數(shù)聲明不僅提升聲明,還提升函數(shù)體。`let`和`const`也存在提升,但處于“暫時(shí)性死區(qū)”,在聲明前訪問會(huì)報(bào)錯(cuò),因此B、D錯(cuò)誤。C正確,函數(shù)提升優(yōu)先級高于變量。42.【參考答案】A、B、C【解析】標(biāo)準(zhǔn)盒模型中,`width`僅指content部分,總寬度還需加上padding、border、margin。IE盒模型中`width`包含content、padding和border,通過`box-sizing:border-box`可啟用。外邊距雖不包含在`offsetWidth`中,但影響頁面布局總占用寬度,故D錯(cuò)誤。43.【參考答案】A、C、D【解析】HTML5語義化標(biāo)簽旨在提高可讀性和可訪問性。`<section>`代表文檔的一個(gè)區(qū)域,`<article>`是獨(dú)立內(nèi)容塊,`<aside>`用于附屬信息。而`<div>`無語義,僅用于樣式或腳本操作,B錯(cuò)誤。合理使用語義標(biāo)簽有助于SEO和屏幕閱讀器識(shí)別。44.【參考答案】A、C、D【解析】ES6模塊中,`exportdefault`只能有一個(gè),`import`語句必須在模塊頂層(不能在條件語句中),因此B錯(cuò)誤。模塊自動(dòng)啟用嚴(yán)格模式,`import*asobjfrom'module'`可將所有導(dǎo)出掛載為對象屬性,A、C、D均正確。模塊語法是靜態(tài)的,支持tree-shaking優(yōu)化。45.【參考答案】A、C、D【解析】事件循環(huán)每次取一個(gè)宏任務(wù)執(zhí)行,執(zhí)行后清空所有微任務(wù)(如Promise回調(diào)),再取下一個(gè)宏任務(wù)。`setTimeout`屬于宏任務(wù),B錯(cuò)誤;`Promise.then`是典型的微任務(wù)。微任務(wù)優(yōu)先級高于宏任務(wù),確保異步回調(diào)的及時(shí)響應(yīng),A、C、D正確。46.【參考答案】B【解析】`null`表示一個(gè)有意的空值,是對象類型(typeofnull返回"object"),而`undefined`表示變量未定義或未初始化。在嚴(yán)格相等(===)比較中,`null===undefined`返回false,因?yàn)樗鼈冾愋筒煌V挥性趯捤上嗟龋?=)下才返回true。這是JavaScript中的常見陷阱,前端開發(fā)中需特別注意類型判斷邏輯。47.【參考答案】A【解析】`let`和`const`存在暫時(shí)性死區(qū)(TDZ),變量會(huì)被提升但不會(huì)被初始化。在聲明之前訪問該變量會(huì)導(dǎo)致ReferenceError。這與`var`不同,`var`提升且初始化為undefined。這是ES6的重要特性,前端開發(fā)中需避免在聲明前使用`let/const`變量。48.【參考答案】A【解析】`em`相對于當(dāng)前元素的`font-size`,若未設(shè)置則繼承父元素。`rem`始終相對于根元素(html)的字體大小,不受嵌套影響,更適合響應(yīng)式布局。前端開發(fā)中,`rem`常用于實(shí)現(xiàn)屏幕適配,避免`em`的嵌套放大問題,是現(xiàn)代布局的重要單位。49.【參考答案】A【解析】`useState`是ReactHook,允許函數(shù)組件擁有狀態(tài)。調(diào)用其更新函數(shù)(如`setCount`)會(huì)將狀態(tài)加入更新隊(duì)列,并觸發(fā)組件重新渲染。這是React函數(shù)組件的核心機(jī)制。注意狀態(tài)更新是異步的,且只有狀態(tài)真正變化時(shí)才會(huì)觸發(fā)渲染(基于Object.is比較)。50.【參考答案】B【解析】根據(jù)HTTP規(guī)范,GET請求用于獲取資源,參數(shù)應(yīng)通過URL查詢字符串傳遞,不推薦也不保證支持請求體。雖然HTTP協(xié)議未明確禁止,但多數(shù)服務(wù)器和代理會(huì)忽略GET的請求體,存在兼容風(fēng)險(xiǎn)。提交表單應(yīng)使用POST方法,這是前端與后端通信的基本規(guī)范。51.【參考答案】A【解析】`==`是抽象相等比較,會(huì)在比較前嘗試將兩邊的值轉(zhuǎn)換為相同類型,例如`1=='1'`返回true;而`===`是嚴(yán)格相等,不僅比較值,還要求數(shù)據(jù)類型一致,`1==='1'`返回false。該特性是JavaScript中常見的考點(diǎn),掌握它有助于避免邏輯錯(cuò)誤。52.【參考答案】A【解析】`position:fixed;`將元素從正常文檔流中移出,并相對于視口(viewport)進(jìn)行定位,因此不受頁面滾動(dòng)影響。常用于實(shí)現(xiàn)固定導(dǎo)航欄或返回頂部按鈕。此特性在響應(yīng)式布局中應(yīng)用廣泛,是CSS定位的核心知識(shí)點(diǎn)之一。53.【參考答案】B【解析】`<section>`是具有明確語義的塊級元素,表示文檔中的一個(gè)獨(dú)立章節(jié)或功能區(qū)域,如文章章節(jié)、評論區(qū)等;而`<div>`是無語義的通用容器。在SEO和可訪問性方面,`<section>`更優(yōu),不能隨意與`<div>`互換,需根據(jù)內(nèi)容結(jié)構(gòu)合理選擇。54.【參考答案】A【解析】`v-model`在`<input>`、`<textarea>`等表單元素上會(huì)自動(dòng)監(jiān)聽`input`事件并更新綁定的數(shù)據(jù),等價(jià)于同時(shí)使用`:value`和`@input`。理解其原理有助于在自定義組件中正確實(shí)現(xiàn)雙向綁定,是Vue開發(fā)中的基礎(chǔ)但關(guān)鍵的知識(shí)點(diǎn)。55.【參考答案】A【解析】`let`和`const`聲明的變量存在暫時(shí)性死區(qū)(TDZ),即從塊級作用域開始到變量聲明語句之間,訪問該變量會(huì)拋出`ReferenceError`。與`var`不同,`let`不會(huì)變量提升,這是ES6中作用域機(jī)制的重要變化,需特別注意避免提前使用。
2025四川九強(qiáng)通信科技有限公司招聘前端開發(fā)工程師擬錄用人員筆試歷年典型考點(diǎn)題庫附帶答案詳解(第2套)一、單項(xiàng)選擇題下列各題只有一個(gè)正確答案,請選出最恰當(dāng)?shù)倪x項(xiàng)(共30題)1、在JavaScript中,以下哪種方法可以實(shí)現(xiàn)跨域資源共享(CORS)請求?A.使用document.domain屬性B.通過JSONP技術(shù)C.設(shè)置Access-Control-Allow-Origin響應(yīng)頭D.調(diào)用window.postMessage方法2、關(guān)于Vue.js中的響應(yīng)式原理,下列描述正確的是?A.Vue3使用Object.defineProperty實(shí)現(xiàn)數(shù)據(jù)劫持B.Vue2通過Proxy代理對象實(shí)現(xiàn)響應(yīng)式C.Vue3采用Proxy替代了Object.definePropertyD.Vue的響應(yīng)式系統(tǒng)不支持?jǐn)?shù)組變化偵測3、以下哪項(xiàng)不是CSSFlex布局中的容器屬性?A.flex-directionB.align-itemsC.flex-growD.justify-content4、在瀏覽器環(huán)境中,執(zhí)行以下代碼的輸出結(jié)果是?
console.log(typeofnull);
console.log(typeofundefined);
console.log(null==undefined);A.objectundefinedtrueB.nullundefinedtrueC.objectundefinedfalseD.nullundefinedfalse5、下列關(guān)于HTTP緩存機(jī)制的說法,正確的是?A.Expires優(yōu)先級高于Cache-ControlB.Last-Modified可精確到毫秒級別C.ETag用于驗(yàn)證資源是否發(fā)生變更D.強(qiáng)緩存下仍會(huì)發(fā)送請求到服務(wù)器驗(yàn)證6、在JavaScript中,以下哪個(gè)方法可以用于檢測一個(gè)對象自身是否具有指定的屬性,而不包括原型鏈上的屬性?A.hasOwnProperty()B.propertyIsEnumerable()C.in操作符D.Object.keys()7、在CSS布局中,以下哪種方式無法實(shí)現(xiàn)一個(gè)元素在父容器中水平垂直居中?A.使用display:flex;并設(shè)置justify-content:center;align-items:center;B.使用position:absolute;配合top:50%;left:50%;transform:translate(-50%,-50%);C.使用float:center;D.使用grid布局并設(shè)置place-items:center;8、以下關(guān)于JavaScript事件循環(huán)(EventLoop)的說法,正確的是?A.宏任務(wù)執(zhí)行完后才執(zhí)行微任務(wù)B.setTimeout屬于微任務(wù)C.Promise.then()回調(diào)屬于微任務(wù)D.事件循環(huán)每次只處理一個(gè)宏任務(wù)和一個(gè)微任務(wù)9、Vue3中實(shí)現(xiàn)響應(yīng)式數(shù)據(jù)的核心技術(shù)是什么?A.Object.definePropertyB.ProxyC.發(fā)布-訂閱模式D.臟檢查機(jī)制10、以下哪個(gè)選項(xiàng)不是HTTP緩存機(jī)制的一部分?A.Cache-ControlB.ETagC.CookieD.Last-Modified11、在JavaScript中,下列哪項(xiàng)能夠正確檢測一個(gè)變量是否為數(shù)組類型?A.typeofvariable==='array'B.variableinstanceofArrayC.Array.isArray(variable)D.variable.constructor===Array12、在CSS盒模型中,當(dāng)一個(gè)元素設(shè)置了box-sizing:border-box;時(shí),其width屬性包含哪些部分?A.內(nèi)容寬度B.內(nèi)容寬度+內(nèi)邊距+邊框C.內(nèi)容寬度+內(nèi)邊距D.內(nèi)容寬度+邊框13、下列關(guān)于Vue.js響應(yīng)式原理的描述,正確的是哪一項(xiàng)?A.Vue3使用Object.defineProperty實(shí)現(xiàn)屬性劫持B.Vue2通過Proxy監(jiān)聽對象變化C.Vue3使用Proxy實(shí)現(xiàn)響應(yīng)式,支持?jǐn)?shù)組和對象的全面監(jiān)聽D.Vue的響應(yīng)式系統(tǒng)無法監(jiān)聽對象屬性的添加或刪除14、在HTTP協(xié)議中,下列哪個(gè)狀態(tài)碼表示“請求的資源未被修改”,常用于緩存協(xié)商?A.200OKB.304NotModifiedC.403ForbiddenD.412PreconditionFailed15、在使用Promise時(shí),下列關(guān)于catch方法的描述,正確的是哪一項(xiàng)?A.catch只能捕獲Promise內(nèi)部的異步錯(cuò)誤B.catch方法等價(jià)于then(null,rejection)C.catch無法捕獲then中拋出的異常D.每個(gè)Promise鏈必須顯式調(diào)用catch,否則不報(bào)錯(cuò)16、在JavaScript中,下列哪個(gè)方法可以用于檢測一個(gè)對象是否擁有某個(gè)自有屬性(非繼承屬性)?A.Object.keys()B.hasOwnProperty()C.in操作符D.Object.getOwnPropertyNames()17、關(guān)于CSS中的盒模型,下列描述正確的是哪一項(xiàng)?A.標(biāo)準(zhǔn)盒模型中,width包括內(nèi)容、內(nèi)邊距和邊框B.設(shè)置box-sizing:border-box后,width包含內(nèi)容、內(nèi)邊距和邊框C.margin始終不參與盒模型的尺寸計(jì)算D.所有瀏覽器默認(rèn)使用W3C標(biāo)準(zhǔn)盒模型18、在Vue3中,下列哪個(gè)選項(xiàng)是正確聲明響應(yīng)式數(shù)據(jù)的方式?A.this.data=reactive({count:0})B.conststate=ref({count:0})C.conststate={count:0}D.conststate=reactive(function(){return{count:0}})19、下列關(guān)于HTTP緩存機(jī)制的說法,哪一項(xiàng)是正確的?A.Expires優(yōu)先級高于Cache-ControlB.設(shè)置Cache-Control:no-store表示允許緩存但需每次驗(yàn)證C.Last-Modified是協(xié)商緩存的驗(yàn)證字段之一D.強(qiáng)緩存生效時(shí)仍會(huì)向服務(wù)器發(fā)送請求校驗(yàn)20、在使用Promise時(shí),下列哪種情況會(huì)導(dǎo)致Promise狀態(tài)變?yōu)閞ejected?A.在Promise構(gòu)造函數(shù)中調(diào)用resolve(false)B.Promise.then()中拋出異常C.Promise.resolve().then(()=>{thrownewError()})D.Promise.all([])被調(diào)用21、在JavaScript中,下列哪個(gè)方法可以用于檢測一個(gè)對象是否擁有某個(gè)自有屬性(非繼承屬性)?A.hasOwnProperty()B.propertyIsEnumerable()C.in操作符D.Object.keys()22、以下關(guān)于CSS盒模型的說法中,哪一項(xiàng)是正確的?A.標(biāo)準(zhǔn)盒模型中,元素的寬度包含padding和borderB.設(shè)置box-sizing:border-box后,width包含padding和borderC.margin始終在盒模型的最內(nèi)層D.所有瀏覽器默認(rèn)使用W3C標(biāo)準(zhǔn)盒模型23、在Vue3中,用于創(chuàng)建響應(yīng)式對象的API是?A.reactive()B.ref()C.defineProps()D.toRefs()24、下列哪項(xiàng)不是HTTP緩存機(jī)制中的響應(yīng)頭字段?A.Cache-ControlB.ExpiresC.Last-ModifiedD.Content-Encoding25、在現(xiàn)代前端項(xiàng)目中,使用Webpack進(jìn)行打包時(shí),loader的主要作用是什么?A.定義打包的入口和出口文件B.監(jiān)聽文件變化并自動(dòng)重新編譯C.對非JavaScript模塊進(jìn)行轉(zhuǎn)換處理D.優(yōu)化輸出的代碼結(jié)構(gòu)26、在JavaScript中,以下哪個(gè)方法可以用于檢測一個(gè)對象是否具有指定的自身屬性(非繼承屬性)?A.Object.keys()B.Object.getOwnPropertyNames()C.hasOwnProperty()D.in操作符27、在CSS布局中,下列哪種方式無法實(shí)現(xiàn)元素的水平垂直居中?A.使用position:absolute和transformB.使用display:flex,配合justify-content和align-itemsC.使用float:centerD.使用margin:auto配合display:grid28、關(guān)于Vue.js中的響應(yīng)式原理,下列描述正確的是?A.Vue3使用Object.defineProperty實(shí)現(xiàn)響應(yīng)式B.Vue2通過Proxy攔截對象屬性操作C.Vue3使用Proxy實(shí)現(xiàn)更高效的響應(yīng)式監(jiān)聽D.Vue不支持?jǐn)?shù)組的響應(yīng)式更新29、在HTTP協(xié)議中,以下哪種狀態(tài)碼表示“服務(wù)器成功處理請求,但無返回內(nèi)容”?A.200B.204C.304D.40430、以下關(guān)于JavaScript事件循環(huán)(EventLoop)的描述,正確的是?A.宏任務(wù)執(zhí)行完后才執(zhí)行微任務(wù)B.setTimeout屬于微任務(wù)C.Promise的回調(diào)屬于微任務(wù)D.事件循環(huán)每次只處理一個(gè)宏任務(wù)和一個(gè)微任務(wù)二、多項(xiàng)選擇題下列各題有多個(gè)正確答案,請選出所有正確選項(xiàng)(共15題)31、在JavaScript中,關(guān)于變量提升(Hoisting)的描述,以下哪些說法是正確的?A.使用`var`聲明的變量會(huì)被提升到其作用域頂部B.使用`let`和`const`聲明的變量不會(huì)被提升C.函數(shù)聲明會(huì)被提升,但函數(shù)表達(dá)式不會(huì)D.變量提升會(huì)導(dǎo)致所有變量在代碼執(zhí)行前初始化為`undefined`32、關(guān)于CSS盒模型,以下哪些描述是正確的?A.標(biāo)準(zhǔn)盒模型中,元素寬度等于內(nèi)容寬度B.IE盒模型中,padding和border包含在width之內(nèi)C.設(shè)置`box-sizing:border-box`后,width包含padding和borderD.所有瀏覽器默認(rèn)使用標(biāo)準(zhǔn)盒模型33、關(guān)于HTML5語義化標(biāo)簽的使用,以下哪些說法正確?A.`<section>`表示文檔中的獨(dú)立章節(jié)或區(qū)域B.`<div>`和`<span>`是語義化標(biāo)簽C.`<article>`適合用于博客文章或新聞內(nèi)容D.`<header>`只能出現(xiàn)在頁面頂部34、在前端性能優(yōu)化中,以下哪些措施能有效減少頁面加載時(shí)間?A.合并CSS和JavaScript文件以減少HTTP請求數(shù)B.使用`<img>`標(biāo)簽的`loading="lazy"`實(shí)現(xiàn)圖片懶加載C.將所有JavaScript腳本放在`<head>`中加載D.啟用Gzip壓縮傳輸資源35、關(guān)于Vue.js的響應(yīng)式原理,以下哪些說法是正確的?A.Vue2使用`Object.defineProperty`劫持?jǐn)?shù)據(jù)的getter和setterB.Vue3使用Proxy實(shí)現(xiàn)響應(yīng)式,性能更好C.數(shù)組的`push`、`pop`等方法在Vue2中無法被檢測D.響應(yīng)式系統(tǒng)能自動(dòng)追蹤組件依賴并更新視圖36、在JavaScript中,以下哪些方式可以實(shí)現(xiàn)變量的解構(gòu)賦值?A.數(shù)組解構(gòu)B.對象解構(gòu)C.字符串解構(gòu)D.函數(shù)參數(shù)解構(gòu)37、關(guān)于CSS盒模型,下列說法正確的有哪些?A.標(biāo)準(zhǔn)盒模型中,width僅包含內(nèi)容區(qū)域?qū)挾菳.IE盒模型中,width包含內(nèi)容、內(nèi)邊距和邊框C.可通過box-sizing屬性切換盒模型類型D.外邊距(margin)始終不參與元素總寬度計(jì)算38、下列哪些方法可以用于避免JavaScript中的內(nèi)存泄漏?A.及時(shí)清除不再使用的定時(shí)器B.避免全局變量的過度使用C.解綁事件監(jiān)聽器D.使用閉包保存外部變量引用39、關(guān)于Vue.js的響應(yīng)式原理,以下描述正確的有哪些?A.Vue2使用Object.defineProperty實(shí)現(xiàn)數(shù)據(jù)劫持B.Vue3使用Proxy替代了Object.definePropertyC.響應(yīng)式僅對對象屬性生效,無法監(jiān)聽數(shù)組變化D.修改數(shù)組的length屬性可觸發(fā)視圖更新40、在HTTP協(xié)議中,以下哪些屬于GET請求的特點(diǎn)?A.請求參數(shù)附加在URL后B.可用于提交敏感數(shù)據(jù)C.有長度限制D.通常被瀏覽器緩存41、下列關(guān)于JavaScript中事件循環(huán)(EventLoop)機(jī)制的描述,哪些是正確的?A.宏任務(wù)(MacroTask)執(zhí)行完后一定會(huì)立即執(zhí)行所有微任務(wù)(MicroTask)B.setTimeout屬于微任務(wù)隊(duì)列中的任務(wù)C.Promise的回調(diào)函數(shù)屬于微任務(wù)D.事件循環(huán)每次只能處理一個(gè)宏任務(wù),但可以連續(xù)執(zhí)行多個(gè)微任務(wù)42、在Vue.js框架中,關(guān)于組件通信方式的描述,哪些是正確的?A.父組件可以通過props向子組件傳遞數(shù)據(jù)B.子組件可以通過$emit觸發(fā)事件向父組件傳遞信息C.使用EventBus可實(shí)現(xiàn)任意組件間的通信,適用于大型項(xiàng)目D.Vuex是Vue3中推薦的狀態(tài)管理方案43、下列哪些方法可以有效提升網(wǎng)頁的首屏加載性能?A.使用懶加載(LazyLoading)加載非首屏圖片B.將所有CSS文件合并為一個(gè)并內(nèi)聯(lián)到HTML中C.對JavaScript文件進(jìn)行代碼分割(CodeSplitting)D.啟用Gzip壓縮服務(wù)器響應(yīng)內(nèi)容44、關(guān)于HTML5的語義化標(biāo)簽,以下說法正確的是?A.`<section>`表示文檔中的獨(dú)立章節(jié)或區(qū)域B.`<div>`是語義化標(biāo)簽,用于劃分內(nèi)容區(qū)塊C.`<article>`適合用于博客文章、新聞等可獨(dú)立發(fā)布的內(nèi)容D.使用`<header>`和`<footer>`可以增強(qiáng)頁面結(jié)構(gòu)可讀性與SEO45、在CSS布局中,以下哪些方法可以實(shí)現(xiàn)元素的水平垂直居中?A.使用`position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)`B.設(shè)置`display:flex;justify-content:center;align-items:center`C.使用`float:center`并配合margin自動(dòng)調(diào)整D.父元素設(shè)置`text-align:center`,子元素為行內(nèi)塊并垂直對齊三、判斷題判斷下列說法是否正確(共10題)46、在JavaScript中,`typeofnull`的返回結(jié)果是"object"。A.正確B.錯(cuò)誤47、CSS中的`em`單位是相對于當(dāng)前元素字體大小的相對單位,而`rem`是相對于根元素(html)字體大小的單位。A.正確B.錯(cuò)誤48、在React中,使用`useState`更新狀態(tài)后,狀態(tài)會(huì)立即同步更新并反映在后續(xù)代碼中。A.正確B.錯(cuò)誤49、HTML5中,`<section>`和`<div>`在語義上沒有區(qū)別,可隨意替換使用。A.正確B.錯(cuò)誤50、在瀏覽器環(huán)境中,事件循環(huán)(EventLoop)中,微任務(wù)(Microtasks)的執(zhí)行優(yōu)先級高于宏任務(wù)(Macrotasks)。A.正確B.錯(cuò)誤51、在JavaScript中,使用`var`聲明的變量會(huì)存在變量提升現(xiàn)象,而`let`和`const`則不會(huì)被提升。A.正確B.錯(cuò)誤52、在CSS中,`em`單位是相對于當(dāng)前元素字體大小的單位,而`rem`是相對于根元素(html)字體大小的單位。A.正確B.錯(cuò)誤53、在Vue3中,`setup()`函數(shù)是CompositionAPI的入口,只能在組件的選項(xiàng)中使用,不能在普通JavaScript文件中調(diào)用。A.正確B.錯(cuò)誤54、HTTP狀態(tài)碼304表示服務(wù)器接收到請求,但資源未修改,客戶端應(yīng)使用本地緩存版本。A.正確B.錯(cuò)誤55、在React中,`useEffect`Hook的依賴數(shù)組為空時(shí),該副作用函數(shù)僅在組件掛載后執(zhí)行一次。A.正確B.錯(cuò)誤
參考答案及解析1.【參考答案】C【解析】跨域資源共享(CORS)是瀏覽器的一種安全機(jī)制,通過服務(wù)器在響應(yīng)頭中設(shè)置Access-Control-Allow-Origin,告知瀏覽器允許指定來源的請求訪問資源。選項(xiàng)C是CORS機(jī)制的核心實(shí)現(xiàn)方式。JSONP雖可實(shí)現(xiàn)跨域,但基于script標(biāo)簽,不屬CORS;document.domain僅適用于同主域不同子域;postMessage用于跨窗口通信,并非HTTP請求跨域解決方案。2.【參考答案】C【解析】Vue2使用Object.defineProperty劫持對象屬性的getter/setter,但對數(shù)組和新增屬性有局限;Vue3改用ES6的Proxy,能更全面監(jiān)聽對象和數(shù)組變化,支持動(dòng)態(tài)屬性添加。選項(xiàng)A、B描述錯(cuò)誤,D錯(cuò)誤因Vue可通過重寫數(shù)組方法實(shí)現(xiàn)偵測。因此C為唯一正確選項(xiàng)。3.【參考答案】C【解析】flex-direction、align-items、justify-content均為Flex容器的屬性,用于控制主軸方向、交叉軸對齊和主軸對齊方式。flex-grow是子項(xiàng)(flexitem)的屬性,用于定義項(xiàng)目的放大比例。因此C不屬于容器屬性,是項(xiàng)目屬性,故正確答案為C。4.【參考答案】A【解析】typeofnull返回"object"是JavaScript的歷史遺留bug;typeofundefined返回"undefined"正確。null==undefined在非嚴(yán)格相等時(shí)返回true,因二者表示“無值”被認(rèn)定相等。故輸出依次為"object"、"undefined"、true,答案為A。5.【參考答案】C【解析】ETag是資源唯一標(biāo)識(shí),服務(wù)器通過比較ETag判斷資源是否更新,用于協(xié)商緩存驗(yàn)證。Cache-Control優(yōu)先級高于Expires;Last-Modified精度為秒;強(qiáng)緩存命中時(shí)無需請求服務(wù)器,直接使用本地緩存。故僅C正確,其他選項(xiàng)均有誤。6.【參考答案】A【解析】hasOwnProperty()方法用于判斷對象自身是否包含指定屬性,不查找原型鏈。而in操作符會(huì)檢查對象自身及原型鏈;propertyIsEnumerable()雖然也檢查自身屬性,但還要求屬性可枚舉;Object.keys()返回自身可枚舉屬性的數(shù)組,不能直接用于判斷單個(gè)屬性是否存在。因此,最準(zhǔn)確的答案是A。7.【參考答案】C【解析】CSS中沒有float:center;這一語法,float只支持left、right、none等值,無法實(shí)現(xiàn)居中布局。A、B、D均為現(xiàn)代前端中常用的居中方案:Flexbox、絕對定位+transform、Grid布局均可實(shí)現(xiàn)精準(zhǔn)居中。因此,C選項(xiàng)語法錯(cuò)誤,不能實(shí)現(xiàn)居中,答案為C。8.【參考答案】C【解析】在事件循環(huán)中,每執(zhí)行完一個(gè)宏任務(wù)后,會(huì)清空當(dāng)前所有的微任務(wù)隊(duì)列。Promise.then()是典型的微任務(wù),而setTimeout屬于宏任務(wù)。A項(xiàng)順序顛倒;D項(xiàng)錯(cuò)誤,微任務(wù)會(huì)全部執(zhí)行完,不限一個(gè)。因此,正確答案是C。9.【參考答案】B【解析】Vue3使用Proxy代替Vue2的Object.defineProperty實(shí)現(xiàn)響應(yīng)式,Proxy能監(jiān)聽對象屬性的新增、刪除等操作,更加全面和高效。Object.defineProperty只能劫持已有屬性;發(fā)布-訂閱是設(shè)計(jì)模式,非實(shí)現(xiàn)機(jī)制;臟檢查常用于Angular。因此正確答案是B。10.【參考答案】C【解析】HTTP緩存依賴于響應(yīng)頭字段如Cache-Control(控制緩存策略)、ETag(資源標(biāo)識(shí)符)、Last-Modified(資源最后修改時(shí)間)實(shí)現(xiàn)。Cookie用于會(huì)話管理,不屬于緩存機(jī)制。雖然它可能影響緩存行為,但其核心功能是狀態(tài)保持。因此,C選項(xiàng)不是緩存機(jī)制的一部分,答案為C。11.【參考答案】C【解析】`Array.isArray()`是ES5引入的用于精確判斷數(shù)組類型的靜態(tài)方法,不受原型鏈修改的影響,最為可靠。`instanceof`在跨執(zhí)行上下文(如iframe)時(shí)會(huì)失效;`constructor`可能被重寫;`typeof`對數(shù)組返回"object"。因此C選項(xiàng)最準(zhǔn)確。12.【參考答案】B【解析】`box-sizing:border-box`使元素的width和height包含內(nèi)容、內(nèi)邊距(padding)和邊框(border),不包括外邊距(margin)。這在布局時(shí)更直觀,避免計(jì)算溢出。標(biāo)準(zhǔn)的content-box僅包含內(nèi)容,因此B正確。13.【參考答案】C【解析】Vue3改用Proxy替代Object.defineProperty,可監(jiān)聽對象屬性的增刪及數(shù)組變化,解決了Vue2的響應(yīng)式限制。Vue2使用defineProperty,無法檢測屬性動(dòng)態(tài)添加。因此C項(xiàng)描述準(zhǔn)確。14.【參考答案】B【解析】304狀態(tài)碼表示客戶端發(fā)送了條件請求(如If-Modified-Since),服務(wù)器驗(yàn)證資源未修改后返回此碼,不傳輸內(nèi)容,允許使用緩存。200為正常響應(yīng),403為權(quán)限不足,412為前置條件失敗,故B正確。15.【參考答案】B【解析】`catch`是`then`的語法糖,等價(jià)于`then(null,rejection)`,可捕獲Promise拒絕及前面then回調(diào)中拋出的同步異常。未加catch的鏈會(huì)在控制臺(tái)報(bào)錯(cuò)但不阻斷執(zhí)行。B項(xiàng)描述準(zhǔn)確,符合Promise規(guī)范。16.【參考答案】B【解析】hasOwnProperty()方法用于判斷對象是否包含指定的自有屬性,不包括從原型鏈繼承的屬性。Object.keys()和Object.getOwnPropertyNames()返回屬性數(shù)組,不能直接用于布爾判斷;in操作符會(huì)檢查包括原型鏈在內(nèi)的所有可枚舉屬性,因此不能區(qū)分是否為自有屬性。只有hasOwnProperty()能精確判斷自有屬性的存在性,是標(biāo)準(zhǔn)解決方案。17.【參考答案】B【解析】默認(rèn)情況下,CSS使用標(biāo)準(zhǔn)盒模型(content-box),width僅指內(nèi)容區(qū)寬度。設(shè)置box-sizing:border-box后,width包括內(nèi)容、內(nèi)邊距和邊框,便于布局控制。margin是盒模型外部空間,不計(jì)入元素自身尺寸。盡管現(xiàn)代瀏覽器默認(rèn)支持標(biāo)準(zhǔn)盒模型,但實(shí)際開發(fā)中常通過reset或border-box統(tǒng)一處理。B項(xiàng)描述準(zhǔn)確。18.【參考答案】B【解析】在Vue3的組合式API中,ref()用于創(chuàng)建包含基本類型或?qū)ο蟮捻憫?yīng)式引用,訪問時(shí)需用.value;reactive()接收對象并返回響應(yīng)式代理。B項(xiàng)正確使用ref包裹對象,可在模板中直接解構(gòu)使用。A項(xiàng)混用Vue2語法;C項(xiàng)非響應(yīng)式;D項(xiàng)傳入函數(shù)而非對象,錯(cuò)誤。ref和reactive是響應(yīng)式核心API,使用需規(guī)范。19.【參考答案】C【解析】HTTP緩存分為強(qiáng)緩存和協(xié)商緩存。強(qiáng)緩存使用Cache-Control和Expires,其中Cache-Control優(yōu)先級更高;no-store表示禁止任何緩存。協(xié)商緩存通過Last-Modified/If-Modified-Since或ETag/If-None-Match實(shí)現(xiàn),Last-Modified是服務(wù)器返回的資源最后修改時(shí)間,用于后續(xù)請求驗(yàn)證。強(qiáng)緩存命中時(shí),不發(fā)請求,直接使用本地緩存。C項(xiàng)正確。20.【參考答案】C【解析】Promise狀態(tài)由執(zhí)行器函數(shù)中的resolve或reject決定。resolve(false)仍使?fàn)顟B(tài)為fulfilled,因參數(shù)可為任意值。B項(xiàng)中,.then的異常若未被后續(xù).catch捕獲,會(huì)返回一個(gè)rejected的新Promise。C項(xiàng)在then回調(diào)中拋出錯(cuò)誤,該P(yáng)romise鏈將進(jìn)入rejected狀態(tài)。D項(xiàng)Promise.all空數(shù)組會(huì)立即resolve。C是明確導(dǎo)致rejected的情況。21.【參考答案】A【解析】`hasOwnProperty()`方法用于判斷對象是否包含指定的自有屬性,不包括原型鏈上的繼承屬性。`in`操作符會(huì)檢查包括原型鏈在內(nèi)的所有屬性,無法區(qū)分是否為自有屬性。`propertyIsEnumerable()`雖然也檢測自有屬性,但還要求屬性可枚舉,范圍更小。`Object.keys()`返回所有可枚舉自有屬性的數(shù)組,但不能直接用于判斷單個(gè)屬性的存在。因此,最準(zhǔn)確用于檢測自有屬性的方法是`hasOwnProperty()`。22.【參考答案】B【解析】在標(biāo)準(zhǔn)盒模型(content-box)中,width僅指內(nèi)容區(qū)域?qū)挾?,不包含padding和border。而設(shè)置`box-sizing:border-box`后,width和height包含內(nèi)容、padding和border,更便于布局控制。margin位于盒模型最外層,用于與其他元素的間距。雖然現(xiàn)代瀏覽器默認(rèn)使用W3C標(biāo)準(zhǔn)盒模型,但早期IE使用怪異盒模型。因此,B選項(xiàng)正確描述了border-box的行為。23.【參考答案】A【解析】`reactive()`用于將一個(gè)普通對象轉(zhuǎn)換為響應(yīng)式對象,適用于處理對象或數(shù)組類型的數(shù)據(jù)。`ref()`主要用于創(chuàng)建包含基本類型值的響應(yīng)式引用,也可用于對象,但訪問需通過.value。`defineProps()`是用于接收父組件傳遞的props,`toRefs()`則用于將reactive對象的屬性轉(zhuǎn)換為ref形式,便于解構(gòu)使用。因此,創(chuàng)建響應(yīng)式對象的核心API是`
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025廣東汕頭市消防救援支隊(duì)定向招錄潮南區(qū)政府專職消防員24人參考筆試題庫附答案解析
- 2025年淮南安徽省焦崗湖國有資產(chǎn)運(yùn)營有限公司公開招聘9名工作人員參考筆試題庫附答案解析
- 2026國航股份西南分公司乘務(wù)員崗位高校畢業(yè)生校園招聘參考考試試題及答案解析
- 2026海南省旅游和文化廣電體育廳校園招聘廳屬事業(yè)單位工作人員16人(第1號)參考筆試題庫附答案解析
- 2025濰坊水源技工學(xué)校教師招聘(7人)參考筆試題庫附答案解析
- 2025四川創(chuàng)錦發(fā)展控股集團(tuán)有限公司招聘簡歷篩選情況考試備考題庫及答案解析
- 2026云南西雙版納州勐??h供銷合作社聯(lián)合社公益性崗位招聘2人參考考試試題及答案解析
- 2025西安外事學(xué)院門診部招聘參考考試試題及答案解析
- 網(wǎng)店分成合同范本
- 耳機(jī)訂貨合同范本
- 基于SystemView的數(shù)字通信仿真課程設(shè)計(jì)
- 物業(yè)二次裝修管理規(guī)定
- GB 10133-2014食品安全國家標(biāo)準(zhǔn)水產(chǎn)調(diào)味品
- FZ/T 92023-2017棉紡環(huán)錠細(xì)紗錠子
- 現(xiàn)代詩的寫作課件
- 采氣工程課件
- 非洲豬瘟實(shí)驗(yàn)室診斷電子教案課件
- 工時(shí)的記錄表
- 金屬材料與熱處理全套ppt課件完整版教程
- 熱拌瀝青混合料路面施工機(jī)械配置計(jì)算(含表格)
- 水利施工CB常用表格
評論
0/150
提交評論