一、ES6 概述
什么是ES6 : ECMAScript 第六个版本
优点: 在不改变原理的基础上,简化了js代码
问题:兼容性
包括:
1、 let:
什么是:代替var 来声明变量用的
为什么: var 的问题:①声明提前 ②没有块级作用域
何时使用:只要声明变量都用 let
优点:①增加了块级作用域 ②避免了声明提前
原理:let其实就是一个匿名函数自调!且let 为了双保险,在底层悄悄给变量改了名字
let使用注意事项:①同一个块级作用域中,禁止同时let两个同名的变量②在let a 之前到当前作用域的顶部之间,不允许提前使用变量a
例1(var 的弊端):
<script>
var t = 0
function task1() {
console.log(`任务1耗时0.3s`)
t += 0.3
}
function task2() {
console.log(`任务2耗时0.8s`)
t += 0.8
var err = false //模拟出错的变量
if (err == true) {
//如果出错就获得出错的时间,并输出出错提示
var t = new Date()
console.log(`出错了,在${t.toLocaleDateString()}`)
}
}
task1()
task2()
console.log(`共耗时${t}秒`)
</script>
运行结果如下
//改用let后 let阻止了局部的t被声明提前;let 将if{}也变成了一级作用域
<script>
let t = 0
function task1() {
console.log(`任务1耗时0.3s`)
t += 0.3
}
function task2() {
console.log(`任务2耗时0.8s`)
t += 0.8
var err = false //模拟出错的变量
if (err == true) {
//如果出错就获得出错的时间,并输出出错提示
let t = new Date()
console.log(`出错了,在${t.toLocaleDateString()}`)
}
}
task1()
task2()
console.log(`共耗时${t}秒`)
</script>