农行面试2025-09-08

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
  • 注意:盒模型相关(如widthmargin)不可继承。

18. CSS - 如何清除float浮动

  • 父元素设置overflow: hidden|auto
  • 使用clearfix:
.clearfix::after {
  content: "";
  display: block;
  clear: both;
}

19. CSS - Grid布局

二维布局系统,通过display: gridgrid-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)
  • ifforwhile等语句中的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 - 浏览器渲染步骤

  1. 解析HTML生成DOM树
  2. 解析CSS生成CSSOM树
  3. 合并成渲染树(Render Tree)
  4. 布局(Layout/Reflow)
  5. 绘制(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等)

如果有具体问题需要深入解答,可以告诉我题号!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容