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>标签没有跨域限制的“漏洞”,来达到与第三方通讯的目的。

这知识它不进脑子啊。。。