1. HTML - a標簽的target屬性有哪些值?
-
_self:當前窗口(默認) -
_blank:新窗口 -
_parent:父框架 -
_top:頂級框架 -
自定義name:在指定名稱的窗口或框架中打開
2. JS - 判斷哪些屬于JS全局方法
例如:parseInt(), parseFloat(), isNaN(), eval(), encodeURI(), decodeURI()等(注意:部分方法如setTimeout是全局對象的方法,但通常也稱為全局方法)。
3. JS - for循環(huán)雙變量for(var i=0,j=0;i<10,j<6;i++,j++)
循環(huán)條件為i<10,j<6,逗號運算符返回最后一個表達式的值(即j<6),所以實際以j<6為條件。循環(huán)6次。
4. JS - 哪些屬于微任務(wù)?宏任務(wù)有哪些?
- 微任務(wù):Promise.then/catch/finally、process.nextTick(Node.js)、MutationObserver
- 宏任務(wù):setTimeout、setInterval、setImmediate(Node.js)、I/O操作、UI渲染
5. JS - 哪些會造成內(nèi)存泄漏
- 意外的全局變量
- 未清除的定時器或回調(diào)
- 閉包濫用(如循環(huán)引用)
- DOM引用未釋放(移除元素后未置null)
- 事件監(jiān)聽未移除
6. JS - 閉包
函數(shù)嵌套函數(shù),內(nèi)部函數(shù)可以訪問外部函數(shù)的變量。用途:封裝私有變量、柯里化等,但需注意內(nèi)存泄漏。
7. JS - ajax的優(yōu)點
- 無需刷新頁面更新數(shù)據(jù)
- 異步通信,提升用戶體驗
- 減少服務(wù)器負載(按需獲取數(shù)據(jù))
8. JS - 什么情況下會跨域
當協(xié)議、域名、端口任一不同時(同源策略限制)。常見場景:
- 前端域名
a.com,請求API域名b.com - 本地開發(fā)
localhost:3000訪問localhost:8080
9. JS - 哪些是深克隆
-
JSON.parse(JSON.stringify(obj))(但忽略函數(shù)、Symbol、undefined等) - 遞歸拷貝(手動或使用庫如lodash的
_.cloneDeep)
10. JS - JS實現(xiàn)繼承的方式有哪些
- 原型鏈繼承
- 構(gòu)造函數(shù)繼承
- 組合繼承
- 原型式繼承(
Object.create) - 類繼承(ES6
class)
11. JS - 數(shù)組調(diào)用valueOf和toString,分別輸出什么?
-
valueOf():返回數(shù)組本身(原始值) -
toString():將數(shù)組元素用逗號拼接成字符串,如[1,2].toString()→"1,2"
12. JS - “===”和“==”的區(qū)別
-
==:寬松相等(會隱式類型轉(zhuǎn)換) -
===:嚴格相等(值和類型都必須相同)
13. JS - 正則匹配URL
示例(簡單版):
/^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w.-]*)*\/?$/.test(url)
14. ES6 - class
語法糖,基于原型鏈實現(xiàn)繼承。包含構(gòu)造函數(shù)、靜態(tài)方法、繼承(extends)等。
15. ES7 - 新特性
Array.prototype.includes()- 指數(shù)運算符(
**)
16. ES8 - 箭頭函數(shù)有返回值嗎?
有。如果省略大括號,則返回表達式結(jié)果(隱式返回);使用大括號需顯式return。
17. CSS - 哪些樣式可以繼承
- 文本相關(guān):
font-family,color,line-height,text-align等 - 列表相關(guān):
list-style - 部分可見性:
visibility - 注意:盒模型相關(guān)(如
width、margin)不可繼承。
18. CSS - 如何清除float浮動
- 父元素設(shè)置
overflow: hidden|auto - 使用clearfix:
.clearfix::after {
content: "";
display: block;
clear: both;
}
19. CSS - Grid布局
二維布局系統(tǒng),通過display: grid和grid-template-columns/rows等屬性定義行列和區(qū)域。
20. CSS - 選擇器優(yōu)先級
從高到低:
!important- 內(nèi)聯(lián)樣式(1000)
- ID選擇器(100)
- 類/偽類/屬性選擇器(10)
- 元素/偽元素選擇器(1)
- 通配符(0)
21. Jquery - 哪些是jQuery的方法
例如:$(), .click(), .ajax(), .css(), .animate(), .html()等。
22. Jquery - JQuery bind 和 unbind
-
bind():綁定事件(已棄用,推薦用on()) -
unbind():解綁事件(已棄用,推薦用off())
23. Vue - vue 阻止表單默認提交事件
使用@submit.prevent:
<form @submit.prevent="handleSubmit">
24. Vue - vue可以在node環(huán)境下開發(fā),npm管理依賴嗎
可以。Vue項目通常通過Vue CLI創(chuàng)建,使用npm/yarn管理依賴,支持Node.js環(huán)境。
25. Vue - vuex哪些能改變state
只能通過提交mutation(同步)或action(異步提交mutation)來改變state。
26. Vue - vue套件有哪些
- Vue Router(路由)
- Vuex(狀態(tài)管理)
- Vue CLI(腳手架)
- Vuetify/Element UI(UI庫)
27. Vue - vue diff算法
虛擬DOM對比算法,通過同層比較、雙端指針等方式高效更新真實DOM。
28. Vue - 哪些屬于vue指令
-
v-if,v-for,v-bind,v-on,v-model,v-show,v-slot等
29. Vue - vue生命周期哪些能訪問data
所有生命周期鉤子(從created開始)都能訪問data(beforeCreate不能)。
30. Vue - vue循環(huán)用哪個指令
v-for,語法:v-for="(item, index) in items"
31. Vue - 路由傳參
- 動態(tài)路由:
path: '/user/:id',通過$route.params.id獲取 - 查詢參數(shù):
/user?id=123,通過$route.query.id獲取 - props傳參(路由配置中設(shè)置
props: true)
32. Vue - 如何改變element ui樣式
- 深度選擇器:
::v-deep(或/deep/、>>>) - 自定義主題(通過SCSS變量)
- 內(nèi)聯(lián)樣式或類名覆蓋
33. Vue - vue樣式穿透
使用::v-deep(Vue 3推薦)或>>>、/deep/(Vue 2)來覆蓋子組件樣式。
34. Vue - vue computed和watch
-
computed:計算屬性(緩存,依賴變化才重新計算) -
watch:監(jiān)聽數(shù)據(jù)變化(適合異步或復(fù)雜操作)
35. Vue - vue跳轉(zhuǎn)頁面的方式
this.$router.push('/path')<router-link to="/path">-
this.$router.replace()(無歷史記錄)
36. JS - 有哪些塊級作用域
-
{}(ES6的let/const) -
if、for、while等語句中的let/const
37. HTML - input標簽的type屬性
常見:text, password, email, number, checkbox, radio, file, submit, button, date等。
38. Vue - vuex包含哪些東西
- state(狀態(tài))
- getters(計算屬性)
- mutations(同步修改)
- actions(異步操作)
- modules(模塊化)
39. JS - js語法是否寫法有誤
需具體代碼分析,常見錯誤:變量未聲明、括號不匹配、作用域問題等。
40. HTML - 瀏覽器渲染步驟
- 解析HTML生成DOM樹
- 解析CSS生成CSSOM樹
- 合并成渲染樹(Render Tree)
- 布局(Layout/Reflow)
- 繪制(Painting)
41. CSS - c3新增屬性
- 過渡:
transition - 動畫:
animation、@keyframes - 變換:
transform - 漸變:
linear-gradient - 彈性盒:
flex - 網(wǎng)格:
grid
42. 事件 - 鼠標事件
-
click,dblclick -
mousedown,mouseup -
mousemove,mouseover,mouseout -
contextmenu(右鍵菜單)
43. JS - 數(shù)組方法
- 變更原數(shù)組:
push,pop,shift,unshift,splice,sort,reverse - 不變更:
map,filter,reduce,slice,concat - 其他:
find,includes,indexOf
44. 網(wǎng)絡(luò) - 跨域
瀏覽器同源策略限制,解決方案:
- JSONP(僅GET)
- CORS(服務(wù)端設(shè)置
Access-Control-Allow-Origin) - 代理(開發(fā)環(huán)境webpack proxy)
- postMessage
45. Node.js
JavaScript運行時,基于Chrome V8引擎,用于服務(wù)端開發(fā)。
46. JS - 繼承
(同第10題)
47. 代碼 - 簡單的代碼題
需具體題目分析。
48. HTML - input有哪些type
(同第37題)
49. Vue - vue組件間傳值
- 父傳子:
props - 子傳父:
$emit - 兄弟組件:事件總線或Vuex
- 深層組件:
provide/inject
50. Vue - vue生命周期
- beforeCreate, created
- beforeMount, mounted
- beforeUpdate, updated
- beforeDestroy, destroyed(Vue 3改為beforeUnmount, unmounted)
51. Vue - vue原生的指令有哪些
(同第28題)
52. Vue - keepalive時增加哪些生命周期
-
activated(組件激活) -
deactivated(組件緩存)
53. Vue - 子調(diào)父父調(diào)子的方式
- 子調(diào)父:
$emit - 父調(diào)子:通過
ref獲取子組件實例調(diào)用其方法
54. 瀏覽器 - 嚴格模式和混雜模式區(qū)別
- 嚴格模式:按標準渲染(DOCTYPE完整)
- 混雜模式:向后兼容(舊瀏覽器行為)
55. CSS - 選擇器優(yōu)先級
(同第20題)
56. CSS - 給一段c3動畫代碼描述執(zhí)行過程
需具體代碼分析,一般涉及@keyframes定義和animation屬性應(yīng)用。
57. Vue - computed
(同第34題)
58. Vue - diff算法相關(guān)
(同第27題)
59. JS - object.defineProperty對數(shù)組是否能劫持
能,但無法監(jiān)聽數(shù)組索引直接賦值(如arr[0]=1)和length變化,Vue通過重寫數(shù)組方法(push等)實現(xiàn)響應(yīng)式。
60. ES6 - 新特性
- let/const
- 箭頭函數(shù)
- 解構(gòu)賦值
- 模板字符串
- Promise
- class/module等
61. CSS - c3新特性
(同第41題)
62. CSS - 如何清除浮動
(同第18題)
63. 瀏覽器 - 哪些情況會觸發(fā)重排(Reflow)
- 修改DOM結(jié)構(gòu)(增刪節(jié)點)
- 改變元素尺寸(width/height/margin/padding)
- 改變窗口大小
- 獲取布局信息(offsetTop/scrollTop等)
如果有具體問題需要深入解答,可以告訴我題號!