面试题目汇总(定期更新)
1.HTML5,CSS3 新增了那些东西?
语义化标签header,nav,footer,video,audio,canvas等等
sessionStorage,localStorage
border-radius,box-shadow,animation,ttransform.display:flex,background-size,box-sizing:border-box
2.sessionStorage,localStorage,cookies
cookies可以跨域储存,大小4kb,可以设置过期时间,兼容性比较好
localStorage 本地存储,会一直保留,只能手动清楚。大小5m
sessionStorage 同上,单页面关闭会自动清除
3.ES6你有了解吗?简单介绍下都有那些东西?
let,const,
forEach,map,filter
模板字符串:通过反引号来使用,字符串当中可以使用变量,可以使用多行字符串,可以当作普通字符串处理。
4.接下来问题就来了 var和let又有什么区别(是不是感觉给自己挖了个坑)?
var的作用域可以做用在全局,而let声明只能在自己的作用于内有效,除了这个作用于就拿不到他了,var会变量提升,即变量在声明之前使用,值为undefined,let改变了这种语法行为,变量要在声明之后再使用。
5.性能优化
减少dom操作,代码压缩合并,base64,减少网络请求,懒加载,更牛逼的就是JS防抖和节流了,等下会详细介绍。
6.JS防抖和节流
听到这个有没有很害怕哈哈哈哈
7.javasccript单线程还是多线程
单线程,会阻塞其他代码,但是浏览器是事件驱动(Event driven)javascript引擎是单线程处理它的任务队列可以理解成普通函数和回调函数得队列,当异步事件发生时如click mouse XMLHttpRequest completing setTimeout(鼠标事件,定时器,ajax完成出发回调),将他们放入执行队列(浏览器有一个内部大消息循环Event Loop事件循环会轮询事件队列并处理他们),等待当前代码执行完成。
。
8.正则
9.排序
10.去重
11,字符串方法
12,闭包
子函数调用父函数就是闭包,闭包有好处也有坏处!
13,MVC,MVVC
M model V view C controller
MVVC实现了数据的双向绑定
14.VUE生命周期钩子
beforcreate
created
beforemount
mounted
beforsUpdate
updated
actived
deatived
beforeDestroy
destroyed
15.get和post得区别
最简单得是get参数是放在URL,post是放在body请求里,get参数有长度限制和post没有,
进阶回答,其实get和post请求没有本质得区别,都是http协议中得请求方法,底层都是基于TCP/IP协议实现得,get语义化用于查询,post用于修改,
最大得区别就是get产生一个TCP数据包,post产生俩个数据包
get请求浏览器回把http hreader和data一起发送出去,服务器相应200(返回数据)
而对于post,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器想用200 (返回数据)理论上来说get更快 但是他们都有自己得语义不能乱用,在网络环境好的 时候,时间差别可以无视,在网络环境差的时候,俩次TCP验证数据包完整性上有很大得优点,火狐浏览器只发送一次。
16.cookies跨域
做单点登陆需求得时候需要跨域存储cookies方法是用domain属性设置 '.google.com' cookies还可以设置失效时间。document.cookie = "blogClloie=blog;path=/;domain=.blog.csdn.net"
17.一次完整的HTTP事务流程
(1).域名解释
(2)发起TCP的三次握手
(3).简历起TCP链接发送http请求
(4).服务器响应http请求,浏览器得到html代码中
(5)浏览器解析html代码,并请求html代码中的资源
(6)浏览器对页面进行渲染呈现给用户
(7)链接结束
18.http请求码及其作用
1开头信息,服务器收到请求,需要请求者继续执行操作
2开头成功,操作被成功接受并处理
3开头重定向,需要进一步操作以完成请求
4开头客户端错误,请求包含语法错误或无法完成请求
5开头服务器错误,服务器在处理请求的过程中发生了错误
19 http和https协议的器别
http不提供任何数据加密
https提供浏览器和服务器通信加密
20.同源策略(跨域否)
协议相同
域名相同
端口相同
21.解决跨域
降域 document.domain
jsonp
H5的postMessage(data,origin)方法
LocalStotage
22.域名
真正的一级域名是由一个合法字符串+域名后缀组成,baidu.com这才是一级域名,二级域名是在一级域名前加上了一个字符串,比如说www(主机名).baidu.com或者zhidao.baidu.com就是二级域名。
23.node.js介绍
node.js一般不会用来独立开发大型项目,在服务器端执行。
实际用途
1.中间层
2.小型服务
3.工具(webpack,gulp,babel)都是用node写的,直接用。
24.什么是数据的双向绑定
view层和model数据层不经过controller直接绑定。
25.vue事件修饰符
1.stop禁止冒泡
2.once单次点击
3.prevent 阻止默认事件
4.native原生事件(组件)
5.keycode|name 筛选按键
26.computed--计算属性
1.缓存性能高
2.方便可读可写 set get 属性得方式
27.vue数据通信
1.用库 axios
2.原生fetch