1.vue 为什么采用异步渲染
因为如果不采用异步更新,那么每次更新数据就会对当前组件重新渲染,所以为了性能考虑。Vue 会在本轮更新结束后,再异步更新视图。
异步渲染原理:
- 调用 notify()方法,通知 Watcher 进行更新
- 依次调用 Watcher 的 update 方法
- 对 Watcher 进行去重操作,然后放入到队列中
- 执行完后异步清除队列,nextTick 进行批量更新操作
2.组件中写 name 选项有哪些好处
- 可以通过名字定位到组件(递归组件,组件自身调用自身)
- 通过 name 属性实现缓存功能(keep-alive)
- 通过 name 识别组件(跨级组件之间通信)
- 使用 vue-devtools 调试工具时,里面显示组件的名称就是 vue 的组件中的 name
3.什么是<!DOCTYPE>?是否需要在 html5 中使用
它是 html 的文档声明,告诉浏览器,使用哪一种 html 版本标准解析文档
在浏览器的发展历史上,产生了许多不同版本的 html,不同版本的 html 在元素,属性上略有差异。如果没有提前告诉浏览器,浏览器就不知道使用哪种标准,大部分浏览器将会开启最大兼容模式,这就是我们所称的"怪异模式",这无疑会降低解析效率,并且在解析过程中生成一些无法预知的 bug。所以,添加文档声明是必须的。
而<!DOCTYPE>是 html5 文档声明
4.什么是可替换元素,什么是非可替换元素,它们各自有什么特点
可替换元素:
呈现效果不由 css 决定;
例如:
img 元素,它的呈现效果取决于所连接到的图片,尽管 css 可以设置尺寸和大小,但是无法改变图片本身
select 元素,它的样式取决于操作系统上的下拉列表的样式,因此,同一个 select 元素,在不同操作系统上的样式会不同
像 img,audio,video 等元素都是可替换元素
非可替换元素:
即普通元素,呈现效果由 css 决定;
5.src 和 href 的区别
src:
src 是 source 的缩写,常用于 img,video 等元素,可以指定外部资源的路径地址;
href:
href 是 hyper reference 的缩写,意味着超引用
,常见于 a、link 元素。可以标识文档中引用的其他超文本
6.说说常用的 meta 标签
meta 标签为页面提供元数据,元数据不会显示在页面上,但是对于机器是可读的。可用于浏览器、搜索引擎、或其他 web 服务
meta 标签的属性有:
content,http-equive,name 等
7.说说对 html 语义化的理解
- 用正确的标签做正确的事情
- 实现页面的内容结构化,易于解析
- 在缺少 css 样式时,依然可以解析成完整的页面
- 有利于 SEO,有利于爬虫爬取依赖于标记来确定上下文和各个关键字的权重
- 使阅读代码的人更容易将页面进行模块分离,便于团队维护
8.label 的作用是什么?是怎么用的
label 不会给页面展示任何的特殊效果。
而是给鼠标用户改进可用性
当用户点击 label 标签里面的文本时,就会触发此控件。
也就是说,只要选中该标签,浏览器会自动将焦点移到该标签相关的表单控件上
9.iframe 框架有哪些优缺点
- 会阻塞浏览器上的 onload 事件
- iframe 和主页面共用连接池,浏览器对相同域的连接有限制,因此会影响页面的并行加载
可以通过 JavaScript 给 iframe 的 src 动态添加属性值来解决以上两个问题
10.HTML 与 XHTML 二者有什么区别,你觉得应该使用哪一个并说出理由
功能上:
xhtml 兼容各大浏览器,手机以及 PDA,并且浏览器也能快速正确地编译网页。xhtml 的语法较为严谨
书写格式上:
- 所有的标签必须小写
- 标签都是成双成对出现的
- 标签顺序必须正确
- 所有属性必须使用双引号