let变量定义(块级作用域)
ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
循环的计数器,就很合适使用let命令。
var length = 6;
for (let i = 0; i < length; i++) {
console.log(i);
}
console.log(i);
定义在for外面的i会不起作用
块级作用域与函数声明
ES6引入了块级作用域,明确允许在块级作用域之中声明函数。
// ES6严格模式'use strict';
if (true) {
function f() {}// 不报错
}
并且ES6规定,块级作用域之中,函数声明语句的行为类似于let,在块级作用域之外不可引用。
const命令
const声明一个只读的常量。一旦声明,常量的值就不能改变。
const PI = 3.1415;
const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。
const的作用域与let命令相同:只在声明所在的块级作用域内有效。
const a = [];
a.push('Hello'); // 可执行
a.length = 0; // 可执行
a = ['Dave']; // 报错
上面代码中,常量a是一个数组,这个数组本身是可写的,但是如果将另一个数组赋值给a,就会报错。
=>语法
- ES6引入了新的箭头函数编写方式。
// ES5
var selected = allJobs.filter(function (job) {
return job.isSelected();
});
// ES6
var selected = allJobs.filter(job => job.isSelected());
- 当需要编写一个含有多个参数的函数时,只要把相关参数用括号包起来就好了
// ES5
var total = values.reduce(function (a, b) {
return a + b;
}, 0);
// ES6
var total = values.reduce((a, b) => a + b, 0);
- 除了函数样式编写,箭头函数还可以包含区块语句而不仅仅是单一表达式。
/ /ES5
$("#confetti-btn").click(function (event) {
playTrumpet();
fireConfettiCannon();
});
// ES6
$("#confetti-btn").click(event => {
playTrumpet();
fireConfettiCannon();
});
网友评论