一、ecmascript的概述
1、ecmascript的基本概念
(1)ecma是欧洲计算机制造商协会,1994年更名为ecma国际。
(2)ecmascipt是ecma通过的ecma-262标准脚本语言。
(3)ecmascipt是javascript的标准。JavaScript是ecmascipt的具体实现。
(4)ecmascipt2015简称为es2015或es6,自2015年开始,es每年更新一次,6月份发布。
2、ES6的特点
(1)ES6的版本变动内容最多,具有里程碑意义。
(2)ES6加入许多新的语法特性,编程实现简单、高效。
(3)ES6是前端发展趋势,就业必备技能。
二、ES6的基本语法(let和const的使用)
1、let
(1)let的概念
let是声明变量所使用的关键字,let关键字所声明的变量属于局部变量,let关键字只在声明的代码块中才会生效,一旦出了指定的代码块便会报错。
(2)let如何定义变量
控制台显示:
(3)let定义变量时需注意以下几点
1、不允许重复声明
使用let定义变量时不能对同一个变量重复赋值,否则将会报错。
控制台显示:
2、块级作用域
let定义的变量属于局部变量,只在声明变量中的块才会生效,否则将会报错。
源代码显示:
3、 不存在变量提升
var存在变量提升,var所定义的变量,可以先使用后定义,控制台则会返回显示undiefind。
let不存在变量提升,let定义变量,必须先定义后使用,否则将会报错。
源代码显示:
4、不影响作用域链
let不影响作用域链: let定义的变量,如果某作用域内没有该变量的定义和声明,那它会向外层去找let的定义。
变量b报错的原因是:let不存在变量提升。
控制台显示:
值1是变量a输出的结果,变量b则是报错,变量b报错的原因是:let不存在变量提升。
5、暂时性死区
暂时性死区是指一个语法错误,是指let和const命令使区块形成封闭的作用域。
源代码显示:
报错原因:let命令已将下方的代码块封闭了,无法获取到代码块外的 a=1的变量。let没有变量提升。
6、不与顶层对象挂钩
顶层对象是window,与顶层对象挂钩返回true,不与顶层对象挂钩返回false。
控制台显示: