今天去中兴仪器面试了,感觉不错,就是人事部分有点忐忑,以下是我记得的一些面试题,如有错误欢迎指正。
1、v-model原理
vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的。
vue是通过Object.defineProperty()来实现数据劫持的。
2、vue指令有哪些
v-if、v-bind(:)、v-on(@)、v-for、v-else、v-text、v-html、v-pre、v-clock、v-once。
3、v-on可以同时绑定两个事件吗?怎么写
可以,使用逗号隔开,例如:@click="a(),b()"。
4、IE浏览器兼容性问题
参考:IE浏览器兼容性问题
5、移动端会开发吗?怎么开发
会,phoneGap、reactNative、vue的mint-ui、ionic等
6、ES6有个默认参数,什么时候用这个参数
在ES6
中,可以为函数的参数指定默认值。函数默认参数允许在没有值或undefined
被传入时使用默认形参。
7、v-show和v-if的区别,在DOM树上的区别
相同点:v-if与v-show都可以动态控制dom元素显示隐藏
不同点:v-if显示隐藏是将dom元素整个添加或删除,而v-show隐藏则是为该元素添加css--display:none,dom元素还在。
8、自己封装过组件吗?
9、子组件向父组件传递数据,怎么监听数据的变化
通过watch钩子函数监听。
10、vue生命周期,vue加载数据是在哪个阶段
vue的生命周期包括:创建前(beforeCreate)、创建后(created)、挂载前(beforeMount)、挂载后(mountd)、更新前(beforeUpdate)、更新后(updated)、销毁前(beforeDestroy)、销毁后(destroyed),vue数据加载在created阶段。
可参考:vue生命周期详解
11、怎么处理跨域
1、nginx反向代理服务器
2、jsonp跨域
3、跨域资源共享CORS
4、nodejs中间件代理跨域
12、vue与angular的区别
1、vue比angular小巧,运行速度比angular快。
2、指令不同,vue是v-xxx,angular是ng-xxx.
3、vue适用于移动端或小型项目,angular适用于大型项目。
4、vue是由个人维护的,angulars是由谷歌维护的。
13、vue的scope作用,如果需要修改当前页面内引入组件库的样式,该怎么改
scope是css的作用域,限制css样式只对当前组件有效。
使用深度作用选择器,在样式前加/deep/
14、svg与canvas的区别
canvas是位移图,适合做游戏
svg是矢量图,适合做地图
15、怎么改变地图上定位标记的样式(换图标)
百度地图:var myIcon = new BMap.Icon("http://api.map.baidu.com/img/markers.png", new BMap.Size(23, 25), {
offset: new BMap.Size(10, 25), // 指定定位位置
imageOffset: new BMap.Size(0, 0 - 10 * 25) // 设置图片偏移
});
16、css3有哪些新样式
1、属性选择器
2、伪类选择器(nth-child())
3、多背景图
4、文字阴影
5、块级阴影
6、圆角
7、渐变
8、动画
17、promise的用法
参考:Promise的用法
18、列举几种数组去重的方法
1、定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则放在新数组中。
2、先将原数组排序,在与相邻的进行比较,如果不同则存入新数组
3、通过indexOf()下标属性来查询
4、利用数组原型对象上的includes方法
5、利用数组原型对象上的lastIndexOf方法
6、利用ES6的set方法
详细请查看:js数组去重的10种方法