蘑菇街面试
1. DOM事件流的介绍,事件流的顺序,IE下是否一致
答:IE支持的是事件冒泡,其他最新浏览器冒泡捕获都支持
DOM2事件流分三个阶段,事件捕获,事件处理,事件冒泡。
阻止事件冒泡 event.stopPropagetion()
事件绑定,传入三个参数,事件名,事件处理函数,事件冒泡|捕获(false|true)btn.addEventListener('click',function(){},false)
2. 跨域的了解,介绍JSONP的原理
JSONP是在get请求url中加入callback字符串指定回调函数,后端返回的JSON数据作为参数传入前端的设置好的回调函数中(此处需要后端配合)。
利用了script的跨域能力,url作为后台脚本,访问后会被执行。
3. 如何实现在多行文字条件下,超过5行显示省略号
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;//设置line-clamp为4
overflow: hidden;
4. stopPropagation, preventDefault,return false的区别
stopPropagetion 阻止事件冒泡
perventDefault 阻止浏览器默认行为
return false 终止函数,返回布尔值false,之后的所有触发事件和动作都不会被执行
5. 左右两栏,实现等高
js实现等高
获得两栏高度,比较之后,将较大高度赋值给较小高度一栏的高度
6. 如何实现全屏背景图,不留空隙
background: url(bg.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
7. HTML类似ul的列表元素有哪些
<ul>无序列表
<ol>有序列表
<dl>普通列表(无标识)
8. 定义一个方法,不管传入的参数有多少,将他们保存进数组(记得不清,好像是这样的)
function f(){
var arr = []
for(var index in arguments){
//arguments是对象类型,不能使用foreach等数组操作方法
arr.push(arguments[index])
}
}
9. node的文件模块使用过吗
fs.readFileSync从源路径读取文件内容
fs.writeFileSync将文件内容写入目标路径
两者接受源文件路径与目标文件路径两个参数
10. 了解过MVVM,MVC框架吗,简单介绍一下区别
MVC
模型(Model):数据保存
视图(View):用户界面。
控制器(Controller):业务逻辑
所有的通信都是单向的,用户可以改变view,view触发controller,controller改变model,model反馈给view
MVVM
唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,数据视图相互驱动
问题摘自https://segmentfault.com/a/1190000010926953
需要删除请联系po主