一、第一家
1.项目中负责哪些功能
2.js的基本数据类型,检测数据类型
3.unfinde和null的区别
undefined表示变量声明过但并未赋过值,null表示可能未来指向一个空对象,unfinde和null的值相等但是但是类型不等,要用全等来判断不能用双等
4.js中new操作符做了那事情
创建一个空对象,设置原型链,绑定this指向执行构造函数,返回这个对象。
5.浏览优化
5.1减少http请求:css精灵图,防抖和节流
5.2使用CDN:cdn是一组分布在多个不同地理位置的web服务器,用于更加有效的向用户发布内容,web服务器离用户越近,http请求的响应意见越短
5.3压缩代码体积,样式放在头部,脚本放在底部
5.4减少DNS查找(DNS予解析)缓存
6.js延迟加载的方式
js延时加载,有利于提高网页的加载速度,可以通过defer属性、async属性、动态的创建DOM、使用setTimeout延时方法、让js最后加载
7.es中promis和异步的区别
8.es新增了let和const和var的区别
9.js闭包,js还有哪些操作会造成内泄露(不会),let和const出现后还有需要需要闭包。
10.解决跨域问题,jsonp的原理(不会)
jsonp的原理:利用script标签的src属性来实现跨域,通过将前端方法作为参数传递到服务器,然后有服务器注入参数之后再返回,实现服务器端向客户端通讯,由于使用script标签src属性,之支持get请求
11.for in 和object.key的区别:object.key将对象中所有的key值取出来只读取当前对象的key值不会走原型链,而for in会走原型链。forEach和map的区别,map得到一个新数组返回,forEadch方法没有返回值,会改变原数组的值
12.原型链和作用域链的区别
13.普通函数的箭头函数的区别
箭头函数是匿名函数,不能作为构造函数,不能使用new关键字,没有this机制,没有原型属性
14.vue的优点(答的不全)
双向数据绑定,组件化,虚拟DOM
15.vue组件间传值,
父向子,定义自定属性props接收,子向父,定义自定义事件通过$emit触发这个事件。
props父组件更新子组件中的数据是否会更新(不会),利用props传参时只在mounted周期中传递了一次,此 可以利用计算属性。
16.让样式vue只在当前组件中起作用
在组件中的style前面加上scoped就可以了,但是之一特性存在一个缺陷!如果再子组件的根元素上有一个类已经再这个父元素定义过了,那这个父组件的样式就会泄露到子组件中,因此要避免再父组件中书写和子组件同名的clss类
17.如果发多个请求,在第一请求发起把logind显示出来,在最后一个返回时(每一个请求的时间都不确定)取消他
解决方案一、可以定义一个变量变量数等于请求的数量,再每一个变量里让他减减,当变量等于0的时候让他消失。
解决方案二、利用Promise有一个all方法,接收一参数,这个参数可以传入一个数组,再数组中可以写多个Promise抱起来,然后放到个数组里,all方法石凳数组中所有的Promise加载完成之后才去执行的
console.log('loading效果图旋转中') var p1 = new Promise(function(resolve,reject){ setTimeout(() => { console.log('第一个加载完成了'); resolve(); }, 1000); }) var p2 = new Promise(function(resolve,reject){ setTimeout(() => { console.log('第三个加载完成了'); resolve(); }, 2000); }) var p3 = new Promise(function(resolve,reject){ setTimeout(() => { console.log('第二个加载完成了'); resolve(); }, 3000); }) Promise.all([p1,p2,p3]).then(function(){ console.log('loading效果图消失'); })
18.get和post的区别
get请求能被缓存,post请求不能;get请求发送的数据很小,不安全;post请求数据量没有限制相对较安全。
二、第二家
1.组件间传值
2.v-if和v-show共同点和不同点
3.v-if(v-show)和v-for可以一起使用麽?
4.为什么data是一个函数
5.介绍一下深浅拷贝
引用数据类型,名字存在栈内存里,值存在堆内存中,通过地址引用堆内存中的值。引用数据类型存在深浅拷贝的问题。
浅拷贝一个对象(直接赋值),赋值后两个变量使用的相同内容,一个操作,另一个也会变化(也有自己的适用场景)。
深拷贝:1.通过递归的方式实现深拷贝,2.通过JSON对象实现深拷贝,3.展开运算符,4.lodash函数库中的lodash.cloneDeep()实现
6.介绍一下vuex
veux是vue项目开发是的状态管理工具,一个数据要在多个页面共同使用时要用到vuex,vuex有五个成员state,mutations,getters,actions,modules,mutations是操作state数据的方法集合,
7.nextTick的原理()
8.介绍一下vue-loder插件解决了哪些问题
vue-loader是webpack下loader插件 可以把.vue文件 输出成组件
9.vue路由的两种模式
10.created和monuntd的区别
11.路由传参
12.js里的事件循环,js执行机制
13.计算属性和监听属性的区别和使用场景
14.webpack的配置优化配值
15.v-model双向绑定的原理
三、第三家
1.css盒模型包括什么
2.清楚浮动有哪几种方式,为什么要清楚浮动
3.行元素有哪些
4.css四种定位的区别
5.session和localg的区别
6.vue兄弟组件通讯
7.vue如何对数据响应式进行处理,数据改变了没有被检测到
8.vue路由传参区别
9.windon.onlod和docu.writ的区别
10.事件委托
11.基本数据类型
12.jq随dom增删该
13.如何遍历一个json对象的key和value
14.数据库的基本操作