ES6新增了许多新特性,是为了编程更简单,高效,是前端发展趋势,是很重要的必备技能。
1:let 关键字
特性: let
关键字用来声明变量,使用 let 声明的变量有几个特点:
1. 不允许重复声明;
2. 块儿级作用域(局部变量);
3. 不存在变量提升;
4. 不影响作用域链;
2:const 关键字
特性: const 关键字用来声明常量,const 声明有以下特点:
1. 声明必须赋初始值;
2. 标识符一般为大写(习惯);
3. 不允许重复声明;
4. 值不允许修改;
5. 块儿级作用域(局部变量);
<html>
<head>
<meta charset="utf-8">
<title>const</title>
</head>
<body>
<script>
// const声明常量
const DOG = "旺财";
console.log(DOG);
// 1. 声明必须赋初始值;
// const CAT;
// 报错:Uncaught SyntaxError: Missing initializer in const
declaration
// 2. 标识符一般为大写(习惯);
// const dog = "旺财"; // 小写也不错
// 3. 不允许重复声明;
应用场景:
声明对象类型使用 const,非对象类型声明选择 let;
3、变量和对象的解构赋值
什么是解构赋值:
ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构赋值;
代码演示及相关说明:
// const CAT = "喵喵";
// const CAT = "喵喵";
// 报错:Uncaught SyntaxError: Identifier 'CAT' has already been
declared
// 4. 值不允许修改;
// const CAT = "喵喵";
// CAT = "咪咪";
// 报错:Uncaught TypeError: Assignment to constant variable.
// 5. 块儿级作用域(局部变量);
// {
// const CAT = "喵喵";
// console.log(CAT);
// }
// console.log(CAT);
// 报错:Uncaught ReferenceError: CAT is not defined
</script>
</body>
</html>
3:允许简化对象和函数写法
<html>
<head>
<meta charset="utf-8">
<title>简化对象写法</title>
</head>
<body>
<script>
// ES6允许在对象的大括号内直接写入变量和函数作为对象的属性和方法
// 变量和函数
let name = "訾博";
let change = function(){
console.log("活着就是为了改变世界!");
}
//创建对象
const school = {
// 完整写法
// name:name,
// change:change
// 简化写法
name,
change,
// 声明方法的简化
say(){
console.log("言行一致!");
}
}
school.change();
school.say();
</script>
</body>
</html>
4:箭头函数
特性:
1. 箭头函数的this是静态的,始终指向函数声明时所在作用域下的this的值;
2. 不能作为构造实例化对象;
3. 不能使用 arguments 变量;
箭头函数是为了更简单的书写函数的方式,但是因为ES6的新内容很难理解,是开始逐渐深入前端(前端的尽头是后端),所以进度变缓,对问题研究也很困难,希望继续加油吧