JavaScript ES6语法

一:ES6的概念

ES 的全称是 ECMAScript , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范。

ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015、ES2016、ES2017 等等,而 ES2015 则是正式名称,特指该年发布的正式版本的语言标准。


二:为什么使用ES6

每一次标准的诞生都意味着语言的完善,功能的加强。JavaScript语言本身也有一些令人不满意的地方

- 变量提升特性增加了程序运行时的不可预测性

- 语法过于松散,实现相同的功能,不同的人可能会写出不同的代码。


1.新增加let变量

1.1-let变量

在函数外声明的变量作用域是全局的:

示例

let声明的变量只在所处于的块级有效

	<script>
			var b = 2;//全局变量
			if(1==1){
				let a = 1;
				console.log('块内a值是:',a);//1
				console.log('块内b值是:',b);//2
			}
			console.log('块内a值是:',a);//ReferenceError: a is not defined
			console.log('块内b值是:',b);//2
		</script>

1.2-for循环需要let变量

示例1

for (var i = 1; i < 10.length; i++) {
				console.log(i);
			}
			console.log(i);//未定义

 示例2

for (var i = 0; i < 3; i++) {//父作用域
				let i = 'a';//子作用域
				console.log(i);
			}

1.3-let不存在变量提升

var变量可以先使用再声明,在而是es6中变量必须要先声明变量,才可以使用。

 示例

console.log(i);//报错
			let i = 1;
			console.log(i);

 1.4let暂时性死区

只要块级作用域内存在let命令,它所声明的变量就“绑定”这个区域,不再受外部的影响。

示例

//暂时性死区:用let声明的变量需要先声明后使用
			var i = 1;
			if(true){
				i = 2;
				let i = 3;
			}

1.5不允许重复声明

示例

let a=1;
let a=3;//重复了,报错

let案例 

 let arr = [];
			  
 for(let i=0;i<3;i++){
 arr[i] = function(){
 console.log(i);
     }
}
			  
     arr[0]();
     arr[1]();
	 arr[2]();

总结

 let 关键字用来声明块级变量。

 特点就是在{}声明具有块级作用域,var变量无此特点。

 防止循环变量编程全局变量。

 let 关键词无变量提升。

 let 关键词有暂时性死区的特点。{先声明后使用}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值