一、ES6语法的简介
浏览器:javascript 三个部分: ECMAScript + BOM + DOM 服务器:javascript = ECMAScript + 系统内置的核心模块(fs http)
ECMAScript 是什么? 是一个 规范。 ECMA 是一个组织协会,协会专门负责制定各种规则。他们制定了一个 ECMAscript 规范,规定脚本语言实现。变量声明 var function fnName 有哪些语言实现这个规范: 1. JavaScript 2. actionScript(flash 动画 flash小游戏)
var的弊端及let关键字
使用var关键字声明变量的弊端:
1、var声明的变量有预解析,造成 逻辑混乱,可以先使用,后声明
2、var可以重复定义同一个变量,逻辑错误,第二次应该是修改变量,而不是定义
3、var用在for循环条件中,造成for 循环的污染的问题
4、var 声明的变量没有块级作用域(ES5中的作用域:全局和局部
let的特点:
1、let声明的变量没有预解析,不会有变量提升
2、let不可以重复定义同一个变量
3、let用在for循环条件中,不会造成for 循环的污染的问题
4、let声明的变量有块级作用域(ES6中的作用域:全局和局部还有块级作用域)
// 1、var声明的变量有解析,造成 逻辑混乱,可以先使用,后声明
// var a = 10;
// console.log(a);
// 2、var可以重复定义同一个变量,逻辑错误,第二次应该是修改变量,而不是定义
// var a = 10;
// var a = 30;
// console.log(a);
// 3、var用在for循环条件中,造成for 循环的污染的问题
// for(var i=0; i<10; i++){
// console.log(i);
// }
// console.log("=====================");
// console.log(i);
// 4、var 声明的变量没有块级作用域(ES5中的作用域:全局和局部)
// {
// var b = 200;
// }
// console.log(b);
上面这些弊端,都在 ES6中的let关键字中得到解决:
// console.log(a); //报错
// let a = 10;
// let a = 10;
// let a = 30; //报错
// for(let i=0; i<10; i++){
// console.log(i);
// }
// console.log("=====================");
// console.log(i); //报错
{
let b = 200;
}
console.log(b); //报错