1. HTML - a标签的target属性有哪些值?
-
_self:当前窗口(默认) -
_blank:新窗口 -
_parent:父框架 -
_top:顶级框架 -
自定义name:在指定名称的窗口或框架中打开
2. JS - 判断哪些属于JS全局方法
例如:parseInt(), parseFloat(), isNaN(), eval(), encodeURI(), decodeURI()等(注意:部分方法如setTimeout是全局对象的方法,但通常也称为全局方法)。
3. JS - for循环双变量for(var i=0,j=0;i<10,j<6;i++,j++)
循环条件为i<10,j<6,逗号运算符返回最后一个表达式的值(即j<6),所以实际以j<6为条件。循环6次。
4. JS - 哪些属于微任务?宏任务有哪些?
- 微任务:Promise.then/catch/finally、process.nextTick(Node.js)、MutationObserver
- 宏任务:setTimeout、setInterval、setImmediate(Node.js)、I/O操作、UI渲染
5. JS - 哪些会造成内存泄漏
- 意外的全局变量
- 未清除的定时器或回调
- 闭包滥用(如循环引用)
- DOM引用未释放(移除元素后未置null)
- 事件监听未移除
6. JS - 闭包
函数嵌套函数,内部函数可以访问外部函数的变量。用途:封装私有变量、柯里化等,但需注意内存泄漏。
7. JS - ajax的优点
- 无需刷新页面更新数据
- 异步通信,提升用户体验
- 减少服务器负载(按需获取数据)
8. JS - 什么情况下会跨域
当协议、域名、端口任一不同时(同源策略限制)。常见场景:
- 前端域名
a.com,请求API域名b.com - 本地开发
localhost:3000访问localhost:8080
9. JS - 哪些是深克隆
-
JSON.parse(JSON.stringify(obj))(但忽略函数、Symbol、undefined等) - 递归拷贝(手动或使用库如lodash的
_.cloneDeep)
10. JS - JS实现继承的方式有哪些
- 原型链继承
- 构造函数继承
- 组合继承
- 原型式继承(
Object.create) - 类继承(ES6
class)
11. JS - 数组调用valueOf和toString,分别输出什么?
-
valueOf():返回数组本身(原始值) -
toString():将数组元素用逗号拼接成字符串,如[1,2].toString()→"1,2"
12. JS - “===”和“==”的区别
-
==:宽松相等(会隐式类型转换) -
===:严格相等(值和类型都必须相同)
13. JS - 正则匹配URL
示例(简单版):
/^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w.-]*)*\/?$/.test(url)
14. ES6 - class
语法糖,基于原型链实现继承。包含构造函数、静态方法、继承(extends)等。
15. ES7 - 新特性
Array.prototype.includes()- 指数运算符(
**)
16. ES8 - 箭头函数有返回值吗?
有。如果省略大括号,则返回表达式结果(隐式返回);使用大括号需显式return。
17. CSS - 哪些样式可以继承
- 文本相关:
font-family,color,line-height,text-align等 - 列表相关:
list-style - 部分可见性:
visibility - 注意:盒模型相关(如
width、margin)不可继承。
18. CSS - 如何清除float浮动
- 父元素设置
overflow: hidden|auto - 使用clearfix:
.clearfix::after {
content: "";
display: block;
clear: both;
}
19. CSS - Grid布局
二维布局系统,通过display: grid和grid-template-columns/rows等属性定义行列和区域。
20. CSS - 选择器优先级
从高到低:
!important- 内联样式(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环境下开发,npm管理依赖吗
可以。Vue项目通常通过Vue CLI创建,使用npm/yarn管理依赖,支持Node.js环境。
25. Vue - vuex哪些能改变state
只能通过提交mutation(同步)或action(异步提交mutation)来改变state。
26. Vue - vue套件有哪些
- Vue Router(路由)
- Vuex(状态管理)
- 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循环用哪个指令
v-for,语法:v-for="(item, index) in items"
31. Vue - 路由传参
- 动态路由:
path: '/user/:id',通过$route.params.id获取 - 查询参数:
/user?id=123,通过$route.query.id获取 - props传参(路由配置中设置
props: true)
32. Vue - 如何改变element ui样式
- 深度选择器:
::v-deep(或/deep/、>>>) - 自定义主题(通过SCSS变量)
- 内联样式或类名覆盖
33. Vue - vue样式穿透
使用::v-deep(Vue 3推荐)或>>>、/deep/(Vue 2)来覆盖子组件样式。
34. Vue - vue computed和watch
-
computed:计算属性(缓存,依赖变化才重新计算) -
watch:监听数据变化(适合异步或复杂操作)
35. Vue - vue跳转页面的方式
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(状态)
- 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 - 网格:
grid
42. 事件 - 鼠标事件
-
click,dblclick -
mousedown,mouseup -
mousemove,mouseover,mouseout -
contextmenu(右键菜单)
43. JS - 数组方法
- 变更原数组:
push,pop,shift,unshift,splice,sort,reverse - 不变更:
map,filter,reduce,slice,concat - 其他:
find,includes,indexOf
44. 网络 - 跨域
浏览器同源策略限制,解决方案:
- JSONP(仅GET)
- CORS(服务端设置
Access-Control-Allow-Origin) - 代理(开发环境webpack proxy)
- postMessage
45. Node.js
JavaScript运行时,基于Chrome V8引擎,用于服务端开发。
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 - 子调父父调子的方式
- 子调父:
$emit - 父调子:通过
ref获取子组件实例调用其方法
54. 浏览器 - 严格模式和混杂模式区别
- 严格模式:按标准渲染(DOCTYPE完整)
- 混杂模式:向后兼容(旧浏览器行为)
55. CSS - 选择器优先级
(同第20题)
56. CSS - 给一段c3动画代码描述执行过程
需具体代码分析,一般涉及@keyframes定义和animation属性应用。
57. Vue - computed
(同第34题)
58. Vue - diff算法相关
(同第27题)
59. JS - object.defineProperty对数组是否能劫持
能,但无法监听数组索引直接赋值(如arr[0]=1)和length变化,Vue通过重写数组方法(push等)实现响应式。
60. ES6 - 新特性
- let/const
- 箭头函数
- 解构赋值
- 模板字符串
- Promise
- class/module等
61. CSS - c3新特性
(同第41题)
62. CSS - 如何清除浮动
(同第18题)
63. 浏览器 - 哪些情况会触发重排(Reflow)
- 修改DOM结构(增删节点)
- 改变元素尺寸(width/height/margin/padding)
- 改变窗口大小
- 获取布局信息(offsetTop/scrollTop等)
如果有具体问题需要深入解答,可以告诉我题号!