前端基础面试题1
1. HTML & CSS
- 对
H5 有了解吗?
语义化标签的理解?
- 了解哪些
css3 的特性?transition和animation的区别?前端页面中动画都有哪些实现方式(别忘了还有js动画)?
- 谈一下对
websocket的理解?webworks的作用?
- 用 css 实现 table 表格
隔行变色,隔三行变色。
- css 怎么实现元素
居中?盒子居中?如何水平居中,垂直居中?
flex 布局 ?calc 函数用过吗?什么时候用的?
- css
选择器和优先级?
Position 有哪些定位方式?(relative,absolute,fixed)各自都是什么效果?
BFC?生成,特性,主要用途
清除浮动?不添加新元素清除浮动?
伪类和伪元素?::after和:after的区别?
- 让元素
消失?
- css 技巧,浏览器
右侧白条?兼容问题?图片间隙?行内块间距?
- 等高布局(圣杯,双飞翼,三种等高布局)
单/行多行文末省略号?
- Img 标签
title 和 alt 属性的作用?
- 涉及
margin-top 的问题(穿透,重叠,带着下移),解决方法?
- 盒模型(标准盒模型
box-sizing: content-box 和 IE 怪异盒模型box-sizing: border-box) 其他浏览器和 ie 浏览器的盒模型有哪些区别?
- 浏览器的
同源策略(端口,域名,协议)
cookie,sessionstorage,localStorage区别?用过哪些,cookie 不设置过期时间什么时候失效?cookie 和session的区别?离线存储有什么优势?
- 用过 css 的
预编译器没有,less,stylus 是什么样的,你平时都怎么用的?
Canvas 和 svg的区别?
gif,jpg,png...?
2. js
- 什么是 JS
严格模式?怎么进入严格模式?严格模式下有哪些限制?
- js 的
模块化技术都有哪些?(CommonJS,AMD...)
- js 有哪些
数据类型,哪些是存在堆内存,哪些是存在栈内存中?
null和undefined区别?隐式转换。。。
- 怎么
反转字符串?(split,reverse,join)
数组有哪些方法,你都用过哪些,分别返回什么值?哪些情况下使用(join,splice,push,slice,indexof,sort,concat,reverse,map,reduce,some,every,filter,foreach,find,findindex)
- 涉及
字符串(split,indexof,substr,substring,replace,trim,toUppercase,startsWith)
数字:tofixed。
Math(floor,ceil,round,random,abs,sqrt,pow,max,sin)
引用类型和值类型的区别?
- 如何
验证变量的数据类型?( typeof,instance of,constructor)
- DOM
节点操作方法?创建,增加,插入,删除,克隆,替换
- 对
事件流传播机制的理解?事件委托的原理及优点?
- 如何
阻止 form 表单提交?浏览器中事件传播的流程是什么?怎样阻止事件的传播?怎样阻止事件的默认行为?(e.stopPropergation, e.preventDefault)
深拷贝,和浅拷贝你了解过吗,解释一下,怎么实现深拷贝,有哪些方法?JS 如何实现对数组(对象)的深拷贝?
- 你了解
闭包吗,讲讲,工作中有用过闭包吗?
- 你怎么理解
原型,原型链,原型分别是什么,原型的顶端是什么?
Var, let, const 区别,const 定义一个数组,然后我往数组里面 push 一项,可不可以?用 const 定义常量的时候能不能只定义不赋值如 const a;?
数组去重的方法?用尽可能多的方法?
- 定义函数的方法?(
函数声明,函数表达式,构造函数。。。箭头函数)
=== 和 ==?0.1+0.2!=0.3怎么处理?
- Js 函数中的 this 究竟指向谁?怎样
改变函数中this的指向?什么情况下会导致其方法中的 this 指向错误?
Es6 有了解过吗,你了解的有哪些?
箭头函数有哪些特点?他和普通函数有什么区别?Call、apply、bind 方法的区别?
Promiss 你怎么理解的,有哪些状态?怎样解决 js 中回调函数多层嵌套问题 和 多异步任务并发执行问题?
- 数据请求时,如果我要进行多次请求,下一次的请求的参数是上一次请求的结果,你怎么做的?我进行多次数据请求,第三次数据请求需要用到前两次数据请求的结果作为参数,你怎么做的?(
async...await 等)
ES6 的 async 函数怎么使用?
BOM对象模型,操作的主要对象还是啥 是什么你知道吗?(windows),DOM 对象模型是啥(document)
Ajax实现流程?Ajax 中 get和 post 两种请求方式的区别?如何解决get 请求缓存问题?
跨域的解决方式,为什么会形成跨域?
Jsonp实现流程?
- Json 对象与 json 字符串
互转的方法?
- 如何
获取非行内 css 样式?
- 简述
图片懒加载实现原理
Jquery对象和DOM对象互转
- 谈一下对
函数节流和防抖的理解
- 正则表达式中
贪婪模式和懒惰模式的区别?
- js 实现继承(
原型链继承,组合继承,构造继承)
3. 框架
- Vue
渐进式?他的生命周期函数?每一步都干了啥?vue 的源码看过吗?他的底层原理是什么?(react 底层原理)
定义 Vue 组件需要注意哪些地方?(data 必须是一个函数 ,return 一个对象,template 必须有唯一顶层元素)
- Vue 的
组件传值,父子怎么传?子父,兄弟,有没有用过 provide,inject?有没有自己封装过组件?
- 在父组件中怎么使用子组件的方法?
$router是什么,都有哪些东西(router-link,router-view)$router 和$route的区别?
- 你在 vue 中还用了哪些
插件?
- Vue 中你用了哪些里面什么?在项目的哪些模块用的?有什么注意事项(类似
methods,watch,computed他们的不同之处?)
- vue 的
组件配置对象中都有哪些常用字段?分别是什么作用?(Data,props,computed,components,methods,watch,filters,mounted 等生命周期函数)
- Vue 的数据
双向绑定怎么实现的,v-model的本质是什么?(v-bind:value 加v-on:input)
- 什么是
MVC和 MVVM?vue,react和angular对应是?
vue 和react,angular有什么不同?给你一个用 ××× 做的项目要转另一个,都哪些地方需要变动,说说你的思路?
- 用过 vue 的哪些
指令,说出 10 个,v-if,v-show 区别,你在开发中怎么用的?react 中指令有哪些?
- Vue 中遍历加
key 的作用?react 中 keys 的作用?小程序中有什么不一样?
- Vue 怎么
快速操作 dom 结构(ref)?react 呢?他们有什么不同?
编程式导航有哪些方式?区别?具体什么时候用?
- 在 a 页面存了一个 sessionStorage,然后我又打开了一次 a 页面,然后我把原来的 a 页面关闭,新的 a 页面有没有你存的值?(
有)
- Vue 中
$nextTick 的作用
- Vue 中如何
防止组件重复渲染?react 呢?
Vuex? 在什么情况下使用 Vuex?如何更改 Vuex 中的状态?react 呢,他的状态管理是什么?
- vue-router 有哪几种
导航钩子
- 为什么
虚拟 dom会提高性能?
- React 框架中
高阶的作用是什么?哪些情况下使用?
- 你都用过哪些
vue(react)的组件库?(Vant,elementUI,ivew,antd)怎么修改 elementUI 样式?有没有之间进行过二次封装?
- 怎么解决页面加载时的
闪烁问题?
scoped属性作用,scoped样式穿透
- vue 路由有几种模式?(
hash模式,history模式)
4.综合
- 前端页面中的
图形绘制使怎么做?(canvas,svg)
- 做过支付宝/微信支付吗?
支付是怎么实现的?
- 你这个页面中的
上拉加载更多/全页滚动/懒加载/联动滚动是怎么实现的?
- 你是否会使用混合
(hybrid)APP 开发技术进行手机 APP 开发?
babel 的作用是什么?
- 常用的浏览器有哪些?他们分别是什么
内核?
- 简述
前端性能优化方式?如何优化网页打开的速度?
- 谈一下对
token 验证机制的理解
- 如何优化单页面应用
首屏加载速度?
- 如何解决 ajax
跨域问题?localstorage 能否实现跨域访问?
移动端1px?移动端1rem?
Nodejs中有哪些内置模块?分别是什么作用?
Express中常用的中间件都有哪些?(static,bodyparser,session,multer)
- Css 文件中
@import,@font-face,@keyframes,@media这 4 个关键字的作用是什么?
- HTTP 协议的
状态码都有哪些?分别是什么意思?
- 什么叫
优雅降级和渐进增强?
- 什么是
XSS 攻击?怎么防范?什么是 CSRF 攻击?怎么防范? 78.HTTP和 HTTPS 的区别是什么?关于Http 2.0 你知道多少?
栈和队列的区别是什么?js 中怎样实现栈结构?
webpack工具的功能是什么?
- Webpack 怎么打包图片到 js 中,原理是什么?
- 打包到 js 中的
图片怎么显示到页面上?
- Vue 项目中放在哪些位置的图片会被打包?如何避免大图被打包?
- Webpack 怎么打包 css?原理是什么?
- 打包到 js 中的 css 怎么加载到页面上?
- Webpack 能否打包字体文件?能否打包字体图标?
- Webpack 如何生成多个 HTML 页面?
- Webpack 怎么实现将某个模块(在项目的 node_modules 中)中的文件复制到编译输出文件夹中?
- Webpack 的核心概念有哪些,你能画一副图表示编译过程码?
axios 拦截器怎么配
git 的分支?指令?遇到的问题,解决?
重绘和重排的区别?
5. 小程序
- 简述微信小程序
原理?分析下微信小程序的优劣势?
微信小程序与 H5 的区别?如何提高微信小程序的应用速度?
- 微信小程序组件的
生命周期?
- 简单描述下微信小程序的
相关文件类型?初始化小程序目录的文件作用是什么
- 小程序的 wxss 和 css,wxml 和 html 等有哪些不一样的地方?
- 小程序获取
场景值的方法?
- 小程序
onPageScroll 方法的使用注意什么?
- 小程序视图渲染结束
回调?
- 小程序
同步 API和异步 API使用时注意事项?
app.json是对当前小程序的全局配置,讲述三个配置各个项的含义?
- 小程序简单介绍下三种事件对象的属性列表?(
基础事件 BaseEvent,自定义事件 CustomEvent,触摸事件 TouchEvent)
- 列举
10 个常用组件并说明含义( button +switch +slider+icon +audio +map +video +swiper 轮播图+input(bindblur)+progress 进度条)
- 小程序对
wx:if 和 hidden 使用的理解?通过 wx:for 如何实现九九乘法口诀表
bindtap/catchtap/capture-bind:tap/capture-catch:tap 区别和联系
- 小程序的
双向绑定和 vue 的异同?
- 小程序有哪些
参数传值的方法?小程序页面间有哪些传递数据的方法?
- 如何实现
下拉刷新
- app.json 中如何设置 4 个 tabBar
- app.json 中
window 有什么作用
- 微信小程序中如何
获取 data 内的数据,并且从新赋值,用代码说明
- 列举常用的路由 API 并说明含义
- 如何
定义模板和使用模板
- 阐述一下 app.json 文件中 pages 属性和注意事项
- 微信开发过程中,涉及到的
版本类型有哪些?
- 阐述微信公众平台中各公众账号的特点
- 小程序中如何实现
列表渲染,需要注意哪些事项
- 如何
绑定 mustache 数据,请至少说出五种。
- 怎么
封装微信小程序的数据请求的?怎么解决小程序的异步请求问题?