[TOC]
## 1.对HTML5的了解,还有HTML语义化
```
h5是一个标准,书写代码的一个标准
更加语义化,可以见名知意
Canvas绘图
选择器
语义化 就是看到这段代码,我可以知道这块内容是干嘛的,有什么意义,便于浏览器解析提高代码的可维护性
```
## 2. 前端页面有那三层‘
```
结构层,样式层,行为层
```
## 3.web标准,以及对w3c的了解
```
web标准就是将:结构(HTML),样式(CSS),和行为(javascript)分离
W3C对web标准提出了规范化的要求,
1)标签字母要小写;
2)标签要闭合;
3)标签不允许随意嵌套。
尽量使用外联css样式表和js脚本,使样式,结构,行为分离
id class 要见名知义 标签越少,加载越快
提高了代码的可维护性可复用性
```
## 4.什么是路由 vue、React 怎么设置路由
```
路由:根据URL地址的不同显示不同的页面
```
## 5.document.ready 和 window.onload的区别
```
document.ready : dom文档树加载完之后执行的一个函数
window.onLoad:dom文档树和所有文件加载完后执行的一个函数
```
## 6. 高质量的代码具备那些条件
```
1.css命名规范
2.可读性强,要添加必要的注释
3.结构清晰,代码精简,
4.可复用性要强,模块化代码
```
## 7. 事件监听
### JS
```
*element*.addEventListener(*event, function, useCapture*);
```
- 第一个参数是事件的类型 (如 "click" 或 "mousedown").//不要写"on"
- 第二个参数是事件触发后调用的函数。
- 第三个参数是个布尔值用于描述事件是冒泡还是捕获。该参数是可选的。
```
*element*.addEventListener("click", function(){ alert("Hello World!"); });
```
### jQuery
```
$('div').on('click','p',function(){
$('p').css('color','red');
});
```
## 8.cookie和 Session的区别
```
cookie:存储的是访问某些网站后在本地存储的一些网站相关信息:如密码账号等
存储数据量较小,一般不超过4KB
session:是将用户相关的信息存储在服务器上,安全性更高,不易窃取,会占用服务器资源
```
## 9.css、script 的顺序为什么会影响页面加载
```
DOM文档的加载顺序是由上至下的顺序加载
css文件的加载是与DOM的加载并行的,不影响DOM文档加载,所以他应该放在上面,如果CSS在下面加载,就可能会出现页面样式混乱问题
而js文件不会与DOM并行加载,如果script 在上面 ,会阻塞DOM文档的加载,如果js脚本文件过大,就会导致页面显示滞后
```
## 10.为什么js会阻塞其他资源加载
```
浏览器为了防止js修改dom树,导致页面需要重构
```
## 11.浏览器的内核
```
主要分为:渲染引擎和JS引擎
渲染引擎:主要负责获取页面的html,css,然后加载到页面上
JS引擎:主要负责解析和执行JavaScript来实现网页的动态效果
最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向与只指渲染引擎
```
- 常见的浏览器内核有哪些?
```
Trident内核:IE,360,百度;
Webkit内核:Safari,Chrome
blink:Chrome
firefox:Gecko
```
## 12.mvvm框架和mvc框架的区别
> mvvm model-view 是通过数据来显示视图层,不再操作节点
![](https://box.kancloud.cn/aca33c01ebfffbf724d6f244a45965fe_562x486.png)
> mvc 模型 视图 控制器 单向操作
![](https://box.kancloud.cn/ff9acaa702136247fa2c8f385db9562f_583x510.png)
## 13.浏览器的缓存机制
```
1、浏览器判定是否有缓存
2、缓存是否过期
3、跟服务器协商是否使用缓存
4、协商缓存
```
#
## 14.ES6的新特性
- const 与 let 变量 块级作用域,不能重复声明,没有声明提前
- 解构和展开运算符
> 解构 var a = [ x , y , z ] ; var [ x , y , z ] = a console.log(x)
> 展开 [ ... ]
- ES6箭头函数 改变函数中this
- ES6中添加了对类的支持,
### 1.什么是promise
> 是一个构造函数
## 1.对前端工程师这个职位是怎么样理解的?它的前景会怎么样?
* 前端是最贴近用户的程序员,比后端、数据库、产品经理、运营、安全都近。
1、实现界面交互
2、提升用户体验
3、有了Node.js,前端可以实现服务端的一些事情
* 前端是最贴近用户的程序员,前端的能力就是能让产品从 90分进化到 100 分,甚至更好,
```
参与项目,快速高质量完成实现效果图,精确到1px;
与团队成员,UI设计,产品经理的沟通;
做好的页面结构,页面重构和用户体验;
处理hack,兼容、写出优美的代码格式;
针对服务器的优化、拥抱最新前端技术。
```