增加了header、footer、nav、aside、article、section等语义化标签。 在表单方面,为了增强表单,为input增加color、email、date、range等类型,在存储方面提供了sessionStorage 、localStorage和离线存储,通过这些存储方式方便数据在客户端的存储和获取,在多媒体方面规定了音频和视频元素audio和vedio; 另外还有地理定位、canvas画布、拖放、多线程编程的web workers和websocket协议
涉及audio、vedio、localStorage、 canvas画布、 websocket 接着问应用场景。
绝对定位是相对于最近的已经定位的祖先元素,没有则相对于body,绝对定位脱离文档流,而相对定位是相对于元素在文档中的初始位置,并且 相对定位的元素仍然占据原有的空间。
圣杯布局与双飞翼布局针对的都是三列左右栏固定中间栏边框自适应的网页布局,双飞翼布局比圣杯布局多创建了一个div,但不用相对布局了。
目前主流的CSS预处理器是LESS、SASS和Stylus,解决了CSS缺失的样式层复用机制、减少冗余代码,提高样式代码的可维护性
- 函数嵌套函数
- 内部函数可以访问外部函数的变量
- 参数和变量不会被回收
在ES6出现之前,js没有标准的模块化概念,这也就造成了js多人写作开发容易造成全局污染的情况,以前我们可能会采用立即执行 函数、对象等方式来尽量减少变量这种情况,后面社区为了解决这个问题陆续提出了AMD规范和CMD规范,这里不同于Node.js的 CommonJS的原因在于服务端所有的模块都是存在于硬盘中的,加载和读取几乎是不需要时间的,而浏览器端因为加载速度取决于网速, 因此需要采用异步加载,AMD规范中使用define来定义一个模块,使用require方法来加载一个模块,现在ES6也推出了标准的模块 加载方案,通过export和import来导出和导入模块。
ES6在变量的声明和定义方面增加了let、const声明变量,有局部变量的概念,赋值中有比较吸引人的结构赋值,同时ES6对字符串、 数组、正则、对象、函数等拓展了一些方法,如字符串方面的模板字符串、函数方面的默认参数、对象方面属性的简洁表达方式,ES6也 引入了新的数据类型symbol,新的数据结构set和map,symbol可以通过typeof检测出来,为解决异步回调问题,引入了promise和 generator,还有最为吸引人了实现Class和模块,通过Class可以更好的面向对象编程,使用模块加载方便模块化编程,当然考虑到 浏览器兼容性,我们在实际开发中需要使用babel进行编译。
- view:界面
- Model:数据模型
- ViewModel:作为桥梁负责沟通 View 和 Model | 在 MVVM 中,最核心的也就是数据双向绑定,例如 Angluar 的脏数据检测,Vue 中的数据劫持。