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等)
如果有具体问题需要深入解答,可以告诉我题号!