ES6学习笔记(一)——-let和const定义变量

学习的主要模块

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定义变量例子:

ES6学习笔记(一)——-let和const定义变量

结果为:   undefined

原因:变量预解析  即变量提升   实际如下图

ES6学习笔记(一)——-let和const定义变量

a没有赋值,所以为undefind

let:  定义变量(相当于之前的var,只能在块级作用域内使用   if(){}   for(){}   while(){}          块级作用域: {} )

例子如下:

ES6学习笔记(一)——-let和const定义变量

结果为undefind

let和var的区别:

1.没有预解析,不存在变量提升即预解析(在代码块内,只要let定义变量,都会报错,也就是先定义再使用(TDZ:  暂时性死区,即所定义的变量是不能使用的)

例子如下:

ES6学习笔记(一)——-let和const定义变量

结果:a  undefind

ES6学习笔记(一)——-let和const定义变量

结果:5




 

2.同一个作用域里面不能重复定义变量, 但是可以赋值

ES6学习笔记(一)——-let和const定义变量

结果为:5


3.for循环,for循环里面是父级作用域,

ES6学习笔记(一)——-let和const定义变量

结果:不在同一个作用域里面。结果输出3个abc

ES6学习笔记(一)——-let和const定义变量

结果:注释的代码结果为10,没注释的代码结果为5


const: 定义常量(  作用于块级作用域),特性和let一样,

定义的变量不能修改

const定义变量完变量,必须有值,不能后赋值,不能修改

建议:定义变量就用let,  不改变的值就用const