前端面试题大全
碰到的面试题,都总结下来!答案慢慢都弄懂!
第一部分
包含内容:
- css和html
- javascript
- vue
- 微信小程序
css和html
1. Doctype作用?标准模式和兼容模式区别。
声明在HTML文档第一行,告诉浏览器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。
通俗来说就是html和js一样也是经过很多次版本升级,既然有升级就会有版本的差异,api的增加或删除,对于html来说就是 标签的删除和增加,例如<acronym>
在4.0版本之前都是支持的,h5就不支持,删除了这个api,用<abbr>
来取代其功能,面试据这么一个例子就可以了!别的标签还有<applet>
<basefont>
<big>
<center>
<canvas>
<bdi>
等。请参考w3school
标准模式的排版 和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。
2. 行内元素有哪些?块级元素有哪些?
这个写过几次的人都应该知道吧,没啥
每个元素都有一个diaplay属性,确定该元素的类型,比如块级元素默认值就是block,行内元素就是none
行内元素:span
a
u
i
b
img
input
slect
…
块级元素:div
p
ul
li
ol
h1
h2
…
3.引入样式link和import区别
link属于html直接是在html中引入,import在css中引入只能引入css
link在直接引入页面的时候就就已经引入了,import需要在引入css的时候才引入,性能比较低。
import是CSS2.1 提出的,只在IE5以上才能被识别,而link是html标签,无兼容问题;
4.HTML5有哪些新特性?如何区分html和html5
html5新增了好多东西比如:
一些语义化标签 nav header footer
绘图用到的canvas
用于媒体的video 和 audio 元素
本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失,sessionStorage 的数据在浏览器关闭后自动删除;
表单控件,calendar、date、time、email、url、search
区分html5和html:
可以按上文说的doctype区分也可以使用标签区分
5.html语义化理解:
语义化是html结构更清晰,便于浏览器解析,利于SEO搜素,使代码更好理解,便于维护
6.不使用borer新建一个1像素的横线
7.两个盒子用一个css属性实现让一个盒子在左边一个盒子在右边并且在一行
8.css垂直和水平居中方法
使用position定位:好处不用管盒子大小,就是不固定宽高
{
position: absolute;;
top: 50%;
left: 50%;
margin-left: -50%;
margin-top: -50%;
}
也可以使用calc计算出需要定位的值,需要知道宽高
还可以使用transform: translate(-50%, -50%); 不需要知道宽高
固定宽高的话也可以使用定位
{
position: absolute;;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
也可以使用flex
{
display: flex;
justify-content: center;
align-items: center;
}
或者使用最新的grid,父元素必须加grid属性
{
align-self: center;
justify-self: center;
}
还有一种使用table居中缺点也是父盒子宽高为100%必须加display:table;
{
display: table-cell;
text-align: center;
vertical-align: middle;
}
8.清除浮动
清除浮动最好的方法就是使用:after
:after {
clear:both;
content:’’;
display:block;
width:0;
height:0;
}
也可以先新建一个空元素来清除浮动
.clear{
clear:both;
height:0;
line-height:0;
font-size:0;
}
还可以给父元素增加overflow属性
.over-flow{ overflow:auto; zoom:1; }//zoom:1;是在处理兼容性问题
9.介绍一下css盒模型
分为两种:ie盒模型和w3c盒模型
盒模型:内容(content)、填充(padding)、边界(margin)、 边框(border);
区别:IE的content部分把 border 和 padding计算了进去;
10.position有几个值
absolute 生成绝对定位的元素,相对于值不为 static的第一个父元素进行定位。
fixed 绝对定位,相对于浏览器窗口定位
reactive 相对定位,对于正常元素定位
static 默认值,没有定位
inherit 从父元素继承position属性
11.css创建三角形
{
width: 0;
height: 0;
border-width: 20px;
border-style: solid;
border-color: transparent transparent red transparent;
}
12.为什么要初始化css样式
因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异
最简单的初始化方法: * {padding: 0; margin: 0;} (强烈不建议)
13.css新增伪类元素
:nth-child :after :befor :checked :disable
14.css新特性
transform :translate scale skew rotate; transtion ;animation ;shadow ;border-radius
javascript
15.js基本类型
js有五种基本类型:boolean string number null undefined 一种特殊类型:object
新增了Symbol(创建后独一无二且不可变的数据类型 )
16.js基本规范
不在同一行声明多个变量 不用全局函数 switch必须有default
17.定义函数
函数声明 function name(){}
函数表达式 var name = function(){}
new实例化(不常用)
18.原型链
简单来说就是每个对象对会在内部初始化一个属性 prototype 如果这个对象不存在这个属性 会在prototype上找 这个prototype又会自己往上找 prototype
19.js继承
构造函数
优点:实现多个继承,实现子类可以向父类传递参数
缺点:无法实现复用影响性能,只能继承父类方法 不能继承原型上的
原型链继承
优点:实现简单,父类新增原型方法子类可访问
缺点:无法实现多个继承 创造子类实例时无法向父类构造函数传参
拷贝继承
优点:支持多继承
缺点:效率低 内存占用高
实例继承
优点:不限制调用方式
缺点:不支持多继承
组合继承
优点:可传参,可复用,可以继承原型链上的东西 既是子类实例又是父类实例
缺点:调用了两次父类构造函数 多耗费了一点内存
寄生式组合继承
优点:完美
缺点:实现复杂
20.js作用域链
作用域链的作用是保证执行环境里有权访问的变量和函数是有序的,作用域链的变量只能向上访问,变量访问到window对象即被终止,作用域链向下访问变量是不被允许的。
21.this指向
this指向直接调用者
this指向new出来的对象
在事件中this指向这个事件的对象 IE中的attachEvent的this指向全局window
thi指的当前对象
22.null与undefined
null 表示一个对象被定义了,值为“空值”;
undefined 表示不存在这个值。
null==undefined true
23.eval
解析字符串,应该避免使用eval,不安全,非常耗性能(2次,一次解析成js语句,一次执行),也可以把JSON字符串转换为JSON对象
24.window对象和document对象
window对象是指浏览器打开的窗口。
document对象是Documentd对象(HTML 文档对象)的一个只读引用,window对象的一个属性
25.什么是闭包?闭包特性
闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域,将函数内部的变量和方法传递到外部。
特性:
函数内再嵌套函数
内部函数可以引用外层的参数和变量
参数和变量不会被垃圾回收机制回收
26.什么是js严格模式
严格模式就是在js代码前加 use strict 让 Javascript 在更严格的条件下运行,使JS编码更加规范化的模式,消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为。
27.如何创建ajax1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40/* 封装ajax函数
* @param {string}opt.type http连接的方式,包括POST和GET两种方式
* @param {string}opt.url 发送请求的url
* @param {boolean}opt.async 是否为异步请求,true为异步的,false为同步的
* @param {object}opt.data 发送的参数,格式为对象类型
* @param {function}opt.success ajax发送并接收成功调用的回调函数
*/
function ajax(opt) {
opt = opt || {};
opt.method = opt.method.toUpperCase() || 'POST';
opt.url = opt.url || '';
opt.async = opt.async || true;
opt.data = opt.data || null;
opt.success = opt.success || function () {};
var xmlHttp = null;
if (XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
else {
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}var params = [];
for (var key in opt.data){
params.push(key + '=' + opt.data[key]);
}
var postData = params.join('&');
if (opt.method.toUpperCase() === 'POST') {
xmlHttp.open(opt.method, opt.url, opt.async);
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
xmlHttp.send(postData);
}
else if (opt.method.toUpperCase() === 'GET') {
xmlHttp.open(opt.method, opt.url + '?' + postData, opt.async);
xmlHttp.send(null);
}
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
opt.success(xmlHttp.responseText);
}
};
}
28.同步和异步区别
同步:浏览器访问服务器请求,用户看得到页面刷新,重新发请求,等请求完,页面刷新,新内容出现,用户看到新内容,进行下一步操作
异步:浏览器访问服务器请求,用户正常操作,浏览器后端进行请求。等请求完,页面不刷新,新内容也会出现,用户看到新内容
29.操作dom节点
creatElement()具体元素
creatTextNode()创建文本节点
appendChild()添加
removeChild()删除
replaceChild()替换
insertChild()插入
30.数组的方法
push()pop()unshift()shift()splice()indexOf()sort()concat()jion()slice()reverse() includes()
31.更改this指向
.call() .apply() .bind()
32.jquery.extend 与 jquery.fn.extend的区别?
jquery.extend 为jquery类添加类方法,可以理解为添加静态方法
jquery.fn.extend:源码中jquery.fn = jquery.prototype,所以对jquery.fn的扩展,就是为jquery类添加成员函数 使用:
jquery.extend扩展,需要通过jquery类来调用,而jquery.fn.extend扩展,所有jquery实例都可以直接调用
33.作用域
作用域 每个方法都是作用域最大的是window
作用域的方法和属性只能在当前作用域使用
查找作用域 是从当前查找 再去上一级查找
34.同源策略
同域名 同端口 同协议
35.http状态码有那些?分别代表是什么意思?
100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息
200 OK 正常返回信息
201 Created 请求成功并且服务器创建了新的资源
202 Accepted 服务器已接受请求,但尚未处理
301 Moved Permanently 请求的网页已永久移动到新位置。
302 Found 临时性重定向。
303 See Other 临时性重定向,且总是使用 GET 请求新的 URI。
304 Not Modified 自从上次请求后,请求的网页未修改过。
400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
401 Unauthorized 请求未授权。
403 Forbidden 禁止访问。
404 Not Found 找不到如何与 URI 相匹配的资源。
500 Internal Server Error 最常见的服务器端错误。
503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)
36.一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?(流程说的越详细越好)
1、浏览器会开启一个线程来处理这个请求,对 URL 分析判断如果是 http 协议就按照 Web 方式来处理;
2、调用浏览器内核中的对应方法,比如 WebView 中的 loadUrl 方法;
3、通过DNS解析获取网址的IP地址,设置 UA 等信息发出第二个GET请求;
4、进行HTTP协议会话,客户端发送报头(请求报头);
5、进入到web服务器上的 Web Server,如 Apache、Tomcat、Node.JS 等服务器;
6、进入部署好的后端应用,如 PHP、Java、JavaScript、Python 等,找到对应的请求处理;
7、处理结束回馈报头,此处如果浏览器访问过,缓存上有对应资源,会与服务器最后修改时间对比,一致则返回304;
8、浏览器开始下载html文档(响应报头,状态码200),同时使用缓存;
9、文档树建立,根据标记请求所需指定MIME类型的文件(比如css、js),同时设置了cookie;
10、页面开始渲染DOM,JS根据DOM API操作DOM,执行事件绑定等,页面显示完成。
微信小程序
44.微信小程序有几个文件
WXML (WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。内部主要是微信自己定义的一套组件。
WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式,
js 逻辑处理,网络请求
json 小程序设置,如页面注册,页面标题及tabBar。
app.json必须要有这个文件,如果没有这个文件,项目无法运行,因为微信框架把这个作为配置文件入口,整个小程序的全局配置。包括页面注册,网络设置,以及小程序的window背景色,配置导航条样式,配置默认标题。
app.js必须要有这个文件,没有也是会报错!但是这个文件创建一下就行 什么都不需要写以后我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。
app.wxss配置全局css
45.微信小程序组件封装
可以看我上篇文章微信小程序组件的封装:https://juejin.im/post/5afcee09518825670961
46.微信小程序怎样跟事件传值
给HTML元素添加data-*
属性来传递我们需要的值,然后通过e.currentTarget.dataset或的param参数获取。但data-名称不能有大写字母和不可以存放对象
47.小程序的wxss和css有哪些不一样的地方?
wxss的图片引入需使用外链地址;
没有Body;样式可直接使用import导入
48.小程序关联微信公众号如何确定用户的唯一性?
使用wx.getUserInfo方法withCredentials为 true 时 可获取encryptedData,里面有 union_id。后端需要进行对称解密
49.微信小程序怎样获取用户信息
微信小程序获取用户信息需要用户授权,首先用户登陆微信小程序使用wx.login这个API,然后通过wx.getUserInfo这个API在拿到用户信息
牛客网
express和koa的对比,两者中间件的原理,koa捕获异常多种情况说一下
你项目里用到第三方登录涉及的oAuth(JWT)协议的实现原理,以及你本地的实现原理,第三方登录怎么样保证安全性
说下快排完整性
react和vue的区别,你开发如何选择技术栈
express里面登录的session服务怎么样实现分布式服务
vue的理解
vue的双向数据绑定的原理
vue怎么样实现数组绑定
js的继承
call和apply的区别
ajax是同步还是异步,怎么样实现同步
ajax实现过程
闭包的作用理解,以及那些地方用过闭包,以及闭包的缺点,如何实现闭包
跨域方法以及怎么样实现的与原理
工作中做的项目有什么亮点
webpack工程构建工具怎么样用
数组去重
快排和冒泡原理
http状态码
nodejs了解多少
为什么css样式初始化,目的是为了什么
为什么浏览器会产生同源策略
axios有什么特点
cookie和webstrage的区别以及cookie怎么样使用?原生cookie怎么样封装
三次握手
对跨域了解吗。jsonp的限制
浏览器那些地方用到了异步
css弹性布局,那些地方用到过
position属性有哪些值,分别有什么含义
ES6用过吗,新增了那些东西,你用到过什么
const和let的区别,可以改变const定义对象某个属性吗
箭头函数,箭头函数的特点
js的this理解, 如何改变this的指向
cookie有什么限制
js的事件机制
settimeout的机制
遇到过兼容性的问题吗,要如何处理
项目中使用过构建工具吗
平时如何学习前端的,最近在看的一本书
内存泄露的排除定位和解决方法
垃圾回收机制
websocket实现原理
http状态码301 302的区别,304是啥
缓存机制,协商协议
定时器setTimeout的运行机制
事件循环机制 eventloop
异步es5 es6 es7分别怎么样解决
js的继承的实现方法
清除浮动的方法
常见布局的方法
从输入一个url到浏览器页面展示都经历了哪些过程
new生成了一个对象的过程(核心return this)
请简单说明什么是事件冒泡和事件捕获以及事件委托
实现一个两边宽度固定中间自适应的三列布局,圣杯布局,双飞燕
flex布局有没有了解
请简述一下js原型链
es6有了解吗,请简单说一下promise机制,异步的承诺机制,顺势说一下解决回调地狱的问题
手写一下深拷贝,答案提示:JSON.parse(JSON.stringify(obj)) 用JSON实现深拷贝
== 和 === 的却别,,typeof null的结果是什么
同步和异步的执行顺序
get和post的请求区别
什么情况算是跨域,如何解决跨域问题
一个有序的数组如何进行查找操作
手写一个快速排序
事件委托理解,原理,好处,应用场景
前端框架用过什么?
vue和react的区别
vue的原理
闭包
let和var的区别,let的产生背景?
定宽定高,如何垂直居中,那不定宽定高呢?
https的请求过程
代码规范
项目中遇到过什么难点,如何解决的
尾递归问题
电脑里有很多大小不一样的照片,我现在要复制到U盘上,但是U盘容量固定,让你写一个程序,挑选一组照片,让U盘的剩余空间最小。
后端会哪些语言
讲下如何负载均衡
cookie和session的区别和联系
nodejs是单线程还是多线程的,为什么能去开很多异步请求去访问其他接口
一般你是如何操作数据库的?会哪些数据库
mysql的底层引擎,发布
mysql语言写的如何,怎么样判断sql语句的性能?如何优化?
如何去除数组中的重复的项?
遍历数组处理用for循环还有什么方法吗
浏览器出于安全考虑有?(同源策略)
登录原理
让我设计一个页面,选择男或女,搜索出相对性
发送请求有哪些?
web的安全问题?
自我介绍
JS如何计算浏览器的渲染时间的
浏览器的缓存
var的变量提升底层原理是什么?
event loop讲讲
JS的回收机制说一下
数组常用的方法有哪些
websock的底层原理讲讲
你的聊天室项目,如果数据传输出错了怎么办?
现在有一大段文字,如何在页面中设置一个窗口滚动播出这段文件(轮播),轮播图如何解决卡顿问题,有手写过轮播图你,原理是什么
垂直水平居中的方式
实现三栏布局,中间自适应有几种方法
算法:给你一个无序数字数组,里面是随机的书,并给出一个目标值,求这个数组的两个数,这个数的和等于目标值,要求这两个数并给出下标,你能想到最优的办法是什么吗(提示:快排,双指针)
算法:给一个无序的数组,让我分割成m组,这个m组里和最大的一组是所有可能的分割情况最小的(二分答案法)
webpack的原理
proto 和prototype分别是什么
原型链原理
在原型链上Object再往上是什么
new和Object.create的区别
哪种情况下proto和prototype的指向是同一个?
typeof array null undefined NaN分别是什么
把undefined和null转成Number分别是什么
如何判断是否为数组?(instanceOf和constructor可以,但是有原型链断裂的风险,Object.toString.call()最稳定)
instanceOf和constructor的区别
原型链断裂了以后的结果是什么
如果让你实现一个promise怎么样实现
如何学前端的,看了哪些书
博客写了多少篇
你的技术亮点在哪里
写一下实现合理化
你对三大框架的理解是什么
前端性能理解,优化有哪些
nodejs了解多少
你遇到的最有难度的技术问题是什么
redux原理讲讲
了解web移动开发吗,移动端适配方案有哪些
你有Native开发经验吗,讲下Android如何调用页面的资源
行内元素和块级元素有哪些,img属于什么元素
margin坍塌
BFC原理
写一下清除浮动
写一下不知道宽高元素垂直水平居中方法
写一下节点的增删改
如何获取元素的父节点和兄弟节点
JS如何获得用户来源(navigator.userAgent)
跨域方法说一下
jsonp的原理是什么,处理script标签还可以通过什么实现?(静态资源标签)
原型链说一下
谈谈对原型链继承
前端缓存
给你一个乱序数组,你怎么样排序
你的项目有什么亮点
你的文件上传方案是什么
写一个方法提取一下search里面的参数
写一个API实现insertAfter
CSS3哪些用的比较多
CSS动画会吗,怎么样用CSS实现一个loading效果
如何处理CSS兼容问题
webpack有个插件可以解决css兼容性问题你知道吗(postcss-loader)
ES6新特性说说
ES6的代理是什么
let和var的区别讲讲
箭头函数和ES5和this的指向区别讲讲
前端安全这块了解多少
写一个API,实现jQuery的$(selector)选择器,要求兼容IE6
浏览器是如何实现通过你的代码去找到指定的元素的
用JS模拟一个双向链表
前端工程化思想
模块化思想
你为什么选择前端
cookie,session,localStorage和sessionStorage的区别
Nodejs的线程管理
JS设计模式有哪些
跨域的方法有哪些
说说bind,apply,call的区别以及bind的实现
算法:反转二叉树以及时间复杂度
链表找环
react的virtual DOM和Diff算法
React的生命周期
Vue的生命周期
boostrap的底层原理
图片压缩的原理
如何处理高并发的情况下,用户顺序问题
说一下web安全,xss,csrf防范
csrf流程,举例子
session+cookie的登录机制
token香港,浏览器缓存
vue双向绑定原理,vue-loader做了什么
webpack的插件大致流程
编程题:给出一个字符串(“obj.a”),返回对象属性obj.a,类似eval的效果
前端路由会不会发请求
画布濡染有了解吗
前端监控,pm2,如果我服务器挂了,如何快速发现并且定位错误
pm2除了监控还能干什么,如何实现
express中间件如何实现
了解TCP吗,数据结构简单介绍一下以及你的想法
webpack项目太大了怎么办
深拷贝
如果弹出的菜单位置过于贴近边框,如何调整这个元素的位置
计算50个人至少有2个生日相同的概率
一个升序数组,求两个元素的和为一个指定数
vue的生命周期
vuex的状态管理的原理是什么
如何在浏览器端和原生端的代码复用,讲到weex又简单讲了它的原理
跨域如何解决
前端性能优化问题
csrf攻击原理以及防御手段
平衡二叉树
如何在上亿规模的数据中找到最大的一个数
最近看过的技术文章和一遍非技术文章(考察表达能力,和主动学习新知识的习惯)
算法题:二叉树层序遍历
JS的全排列
get和post的区别
301和302的区别
如何避免301跳转https
tcp建立连接三次握手的区别
操作系统进程和线程的区别
线程的哪些资源共享,哪些资源不共享
设计模式有哪些
Linux命令用的多吗,怎么样进行进程间通信
kill指令了解过吗
如何画一个三角形
CSS中对溢出的处理
CSS选择器有哪些,优先级呢?
ES6中用过什么
promise的状态有哪些
讲讲JS的闭包
你有用到express吗
express和koa2的区别
讲讲JS的语言特性吗
最近在学啥
项目用到JAVA,反射来讲
你用过什么数据库
MySQL里面的索引用过吗
B+树了解过吗
mongoDB有哪些特点
实现一个两列等高布局,思路
清除浮动的方法
如何让一个元素消失
重排和重绘
HTTP状态码
讲讲304
浏览器缓存机制
强缓存,协商缓存什么时候用哪个
如何判断一个数组
你说到typeof,能不能加一个限制条件typeof只能判断是object,可以判断一下是否拥有数组的方法
JS的如何实现倒计时,为什么不准,校正方式
JS实现跨域
React的特性
nodejs的时间方法讲讲看
nodejs的特性,适合处理什么场景
IO多路复用
前端优化
实现一个ajax,兼容
如何有一个很多的列表,像头条的新闻列表,用户看得多了,列表越来越大,怎么样处理,思考一下
如果有这样的场景:一个模块A作为输出,BCD等扩展模块可以在A做更改后展示A的原来内容或者驾驶CSS后的内容,想想思路
同一个网站,在上海打开慢,在北京打开快,怎么样分析原因,(DNS解析和CDN)
vue react jquery比较,有测试过性能吗
对大前端的理解,前端会发展怎么样
算法:两个排序好的数组,怎么样找他的中位数
React虚拟DOM,生命周期
react父子通信
nodejs如何require一个包
es6和es5的区别
Nodejs加载原生的包与自己定义的包路径如何查找
HTTP2.0的优势
flex弹性布局裂解,移动端适配方案有哪些
页面缓存
页面性能优化
css性能优化,就动画效果,如何从js,cs角度减少回流?
webpack的plugin和loader的区别
es5如何转为es5-babel
了解webpack如何打败
原型基础
BFC
原型链与作用域链
jQuery的源码看过没
移动端开发经验
css会吗
怎么样学前端
遇到问题如何解决
正则如何将一个数千分化表示
js设计模式知道哪些,单例详细说
函数式编程-柯里化
es6的变量定义和es5的区别
JS事件流
七层网络协议,每层干嘛的
tcp三次握手,四次挥手
排序算法有哪些,时间复杂度,选择排序怎么样搞
数据结构有哪些,红黑树和二叉树的区别,二叉搜索树与二叉平衡树
项目经验
树数据多少非常多怎么样办(懒加载)
页面优化方法
设计模式
cookie和session的却别
如果现在重新做这个项目,有什么想优化的
多长时间开始独立做前端,这段时间是如何学习的
学习生涯最失败的事情是什么,怎么样走出来的
如何看待竞争
项目里最难的事情,如何克服
职业规范是怎么样的
是独生子女吗
别人对你的项目认可度,项目做的怎么样
block元素和inline元素的区别
position有哪些,特性
css选择器有哪些
es5和es6:let,const打包后如何变-块级作用域
JS基本数据类型
作用域链
递归
react生命周期
react通信机制
js事件流
redux
flex弹性布局
this
promise如何从then转为catch的
介绍你做过的项目
promise函数
es6模块新特性
浏览器内存泄露,闭包内存泄露如何解决
怎么样让页面加载更快
兼容过IE的方法
缓存
会pc换还是移动端
观察者模式如何实现
行元素,块级元素的却别
css选择器的优先级
水平垂直居中布局
前端性能优化
闭包的概念,平时如何实现
es6的特性以及这些特性如何实现的
事件冒泡,事件捕获,事件委托的原理,如何实现委托,事件,委托的有点是什么,事件监听
输入URL浏览器是如何工作的
requirejs组件化
jQuery和vue的区别
vue的特点
vue的双向绑定原理
谈谈js设计模式
如何实现订阅者发者模式
MVVM实现原理
vue生命周期
vue跨组件通信实现
vue的props和slot的使用,区别
vuex的原理
详细说明解决跨域的方式
前端安全(资源枚举,XSS共计,DOS攻击,CSRF攻击)
HTTP状态码
重排重绘
谈谈JS的异步机制
项目中是是如何优化页面的
如何实现移动端布局,适配方案
call apply bind的区别
深拷贝的实现
jQuery原理,平时用jQuery都做过什么
用过webpack吗,谈一下webpack打包
给了一个settimeout代码输出的顺序
git命令
Linux命令
JS基础有几种
流式布局
对前端的了解和个人规划
html5的新特性
float和position的区别
如何获取当前日期
html语义化,好处
计算器
清除浮动
盒子模型
border-box和content-box
css伪元素有哪些
打开连接到网页呈现的流程
HTTP请求头,响应头里面有哪些
异步加载JS
JS原型
看哪些技术网站
觉得自己的不足
cookie实现
cookie长度限制
http状态码
301 302
性能优化
一个网页很多很多页面,怎么样让用户体验好一点
一个项目可能要延期,怎么样处理
URL长度限制
缓存
什么时候用local,什么时候用session和 storage
长连接
有没有抓过包
有没有用过代理
DNS
图片压缩
gzip
浏览器兼容
webpack css兼容
css性能
垂直居中,水平居中
盒子米线
last-modifined,etg怎么样判断
css动画优化
401状态码
reflow和repaint
应用层协议有哪些
TCP和UDP
有哪些状态码
Ajax如何实现的
Ajax返回204算是成功吗
settimeout异步
tcp ip分成
vue diff算法
vue的生命周期
pwa
vue-router不能解决情况和边界情况
transition生命周期
线程和进程的区别
什么是异步
promise是如何解析异步操作的
如果给a,b,c,d四个时间,执行时间分别为1,2,3,4,怎么样做才能在abc都在执行完后再执行d,除了使用promise还能使用什么方法
数组去重方法
函数节流和函数防抖知道吗,区别是什么
TCP和UDP的区别
HTTP1.0和HTTP1.1相关我让你听
强缓存和协商缓存知道吗
为什么HTTP1.1中使用Cache-Control代替Expires
HTTP1.1中Etg和f-None-Match哪个权重比较大
排序的几种方法知道吗,是如何实现的
栈和队列有什么区别,具体的应用场景
hashmap原理
react中props和state的区别
组件怎么样拿到redux的数据
给你一个DOM元素,用CSS的方式让他呈现两个的想过,只有一个DOM元素
一个数组只有1和2,排序,1在前面,2在后面
js事件模型,捕获和冒泡,阻止冒泡
preventDefault和stopPropagation的区别
HTTP缓存
https
react的事件绑定和原生有什么区别吗
一个数组,有很多数字存在2次,只有一个数字寸一次,怎么样找出这个数字
关于iframe内部和外部变量的读取是如何的
前端防连击throttle和debounce
ES6 generator async/await了解吗
HTTP/2有什么新特性
哈希的原理
如何反转链表
二叉搜索树的原理
给定两个文本文件,找出他们中相同的行都有哪些
对JS单线程的理解
页面共享数据的方法有哪些
amd,cmd规范
用户页面打开很慢,有哪些优化方式
react的虚拟DOM了解什么,这些类型的框架和传统的jd操作dom的优势
koa generator能讲一下吗
如何做单侧,单侧和开发占比应该是多少
hybrid
v-model参数
mvvm,mvc,mvp区别
cdn
网络安全xss,csfr是什么,怎么样解决安全
https怎么样校验证书有效性
websocket协议,nodejs中有哪些实现了这个协议
TCP/IP体系结构以及每层的主要协议
TCP的三次握手
HTTP各版本比较
数据结构学过什么
js如何实现一个栈
哈希表是怎么样的结构
说说操作系统的内存管理
怎么样实现一个服务器
如何删除一个dom节点
浏览器如何渲染页面的
GitHub的项目问
看过什么书
你是如何理解HTML语义化的
HTML的黑钻模型有哪些构成的,盒子模型有哪些,默认是哪些
盒子模型有没有办法把宽度设置为包含padding
浮动元素有没有什么特性
清除浮动的所有方法
ji基本数据类型
typeof去判断数据类型返回值有哪些
说说事件代理利用的是什么原理
阻止冒泡的函数是什么
cookie有什么特征
加入访问A.com存进了一个cookie,在另外一个页面用ajax向A的域名发请求会携带cookie吗
cookie的其他解决方案
localStorage存储数据格式是什么
怎么样把一个数组存进localSorage
storage有哪些存储方法
html5有哪些新的特性
假设两台电脑之间同步画板如何实现
promise的两个方法,具体实现
es6用的多的有哪些
箭头函数
如果一个页面做辛夷花,从哪些方面考察,从哪些地方优化
vue开发模式和jQuery模式有哪些不同,有哪些优缺点
假设一个object A里面的值n为1,怎么样知道n改变了,有事件绑定吗
react是如何实现数据绑定的
给数字加千位分隔符
HTTP1 SPDY HTTP2的对比
webkit内核渲染页面过程
简单介绍一下backbone
react首次渲染过程
redux和vuex的区别
了解过weex吗
typescript和es6的区别
知道xss吗,介绍一下,如何避免
跨域方式
如何理解html语义化
浏览器如何处理未知的的tab
html5有什么新的tag,canvas…
nodejs的优势,用过nodejs的哪些模块
预约系统如何解决高并发的问题
kut如何优化react的diff,有去提pr吗,为什么
简单说一下ICP UDP
Socks5代理是如何实现的,读过协议吗
http状态码,307是什么,401和403的区别
酸酸是如何实现穿墙的
如何实现文件上传的功能
垂直居中的实现
react和vue的区别
介绍一下盒子模型
实现css动画有哪些
jsonp如何实现,过程
知道哪些http状态码
200和304实现缓存的区别
localstorage和cookie的区别,如何设置cookie
表单提交和ajax的区别
calc属性
symbol
事件监听
常见的请求方式
tcp和http的区别
css的定位属性,怎么样定位的
情景题:给你一个ul列表,找到点击的li对象,把点击到的对象的字符串翻转,讲出思路并且写出代码
只能用获取到对象的属性
小程序的生命周期
小程序的Onlaunch周期不支持同步获取信息之后再执行到下一个生命周期
你怎么样维持用户登录状态的
给你一颗树,如何找到其公共的父节点
你最荣耀的事情
你怎么样知道我们公司的,为什么来我们公司
rem,px,em的区别
协同开发需要注意什么