1.h5新增的标签有哪些?为什么要加强语义化?
h5新增的标签有video,audio,header,nav,aside,footer,article等
语义化可以使开发者能清晰的看出网页的结构,增强可读性
有利于seo
便于团队开发与维护
2.为什么要清除浮动?怎么清除浮动?
因为浮动会脱离文档流,导致父元素坍塌,从而影响页面的排版
.clearfix::after{
content:"";
display:table;
clear:both;
zoom:1;
}
3.行内元素,块元素有哪些?它们有什么不同?
块级元素: div、p、h1-h6、form、ul、ol、dl、dt、dd、li、table、tr、td、th、hr 行内元素: span、img、a、label、code、input、abbr、em、b、big、cite、i、q、textarea、select、small、sub、sup,strong、u
行内元素不换行,没有宽度和高度,可以设置行高,设置外边距,内边距时上下无效,左右有效
块元素换行,有宽度和高度,外边距内边距均可随意设置
4.有哪几种存储方式?有什么不同?
cookie,sessionStorage,localStorage。cookie是设置有效期,有效期到就过期,sessionStorage是在此会话期间不会过期,关闭浏览器就没了,localStorage是关闭浏览器还在
5.for(i=0;i<10;i++){setTimeout(function(){console.log(i)},10)} 输出10个10,修改输出0~9
用let定义i,或者修改为立即执行函数
6.vue双向绑定的原理
通过Object.defineProperty方法的底层set方法
7.vue组件之间是怎么传值的?
父传子可以通过props
子传父通过$emit
8.怎么实现文本不自动换行?超出部分显示省略号
text-overflow:ellipsis;
overflow:hidden;
white-space:nowrap;
10.vue的生命周期有哪些?它们有什么不同?
beforeCreate Vue实例没被完全创建之前,此时数据还没有被初始化
created vue实例创建之后被调用,这个过程一般初始化数据
beforeMounte 模板已经在内存中编译完成,挂载之前被调用,render函数也被首次调用,此时已经完成了虚拟dom的渲染,但并未真正被渲染,这是最后一次修改数据的机会
mounted 模板挂载之后被调用,dom渲染完毕,可以操纵dom元素
beforeUpdate 重新渲染之前,假如之前数据改变,会再次调用render函数,重新构建虚拟dom渲染,与上次的虚拟dom利用diff算法进行比较找出差异,为下一次渲染做准备
updated 渲染完成,页面更新
beforeDestory 实例被销毁前调用
destoryed 实例销毁后调用
11.怎么实现跨域?jsonp的原理是什么?
jsonp cors
jsonp的原理是利用<script>标签没有跨域限制的“漏洞”,来达到与第三方通讯的目的。
这知识它不进脑子啊。。。