学习的主要模块
1.解构赋值 2.箭头函数 3.set和map 4.异步操作 5.类与对象 6.模块化
基本技能
构建工具:gulp, bable ,webpack (用于编译,监听,上线)
服务器环境:express(node.js这个框架使用的模板引擎是ejs), mockjs (做服务器接口和数据)
ES6项目构建
为什么需要项目构建:ES6语法不能直接在浏览器运行
1.基础架构 (怎么创建工程目录)
2.任务自动化( gulp一种工具,提供很多插件完成任务自动化的问(可以访问gulp中文网,了解一些基本的API和插件))
3.编译工具(bable 编译ES6代码成ES5,让浏览器识别、webpack处理模块化import引入另一个js文件)
4. 代码实现
基本语法
1.定义变量 let和var
var定义变量例子:
结果为: undefined
原因:变量预解析 即变量提升 实际如下图
a没有赋值,所以为undefind
let: 定义变量(相当于之前的var,只能在块级作用域内使用 if(){} for(){} while(){} 块级作用域: {} )
例子如下:
结果为undefind
let和var的区别:
1.没有预解析,不存在变量提升即预解析(在代码块内,只要let定义变量,都会报错,也就是先定义再使用(TDZ: 暂时性死区,即所定义的变量是不能使用的)
例子如下:
结果:a undefind
结果:5
2.同一个作用域里面不能重复定义变量, 但是可以赋值
结果为:5
3.for循环,for循环里面是父级作用域,
结果:不在同一个作用域里面。结果输出3个abc
结果:注释的代码结果为10,没注释的代码结果为5
const: 定义常量( 作用于块级作用域),特性和let一样,
定义的变量不能修改
const定义变量完变量,必须有值,不能后赋值,不能修改
建议:定义变量就用let, 不改变的值就用const