ES6学习 let const
1.前言
发现网易云笔记 单纯的记笔记没什么意思,所以今天来博客园写学习感受了,毕设做了休息时间就来写写新学的知识 哈哈哈 !!
2.ES6
就是JavaScript 语言的下一代标准,2015年6月发布..一会
3.首先来看看let 和const
let
1.变量名不会提升
2.块级作用域(补充有解释)
3.相同的块中,通过 let 重新声明一个 var 变量是不允许的
4.for 循环中的父子作用域
for(let i=0; i<btns.length; i++){
btns[i].onclick = function () {
alert('点击了第' + i + '个按钮');
}
}
不会像var声明那样,如果没用闭包,随便点那个都是显示点击了最后一个。
补充:
*ES5 之前,JavaScript 只有两种类型的作用域:全局作用域(在函数之外声明的变量)和函数作用域。
JavaScript 块作用域
通过 var 关键词声明的变量没有块作用域。
在块 {} 内声明的变量可以从块之外进行访问。
{
var x = 10;
}
// 此处可以使用 x
let 关键词声明拥有块作用域的变量。
{
let x = 10;
}
// 此处不可以使用 x
const
1.只在当前的代码块中有效
2.作用域不会被提升
3.不能重复申明
4.申明的常量必须赋值,且值不能够改变。
参考let
补充:
关键字 const 有一定的误导性。
它没有定义常量值。它定义了对值的常量引用。
因此,我们不能更改常量原始值,但我们可以更改常量对象的属性。
原始值不可以改变
const PI = 3.141592653589793; PI = 3.14; // 会出错 PI = PI + 10; // 也会出错
数组和对象可以改变!!神奇吧 哇咔咔!!
对象
// 您可以创建 const 对象:
const car = {type:"porsche", model:"911", color:"Black"};
// 您可以更改属性:
car.color = "White";
// 您可以添加属性:
car.owner = "Bill";
//但是您无法重新为常量对象赋值
const car = {type:"porsche", model:"911", color:"Black"};
car = {type:"Volvo", model:"XC60", color:"White"}; // 错误
数组
// 您可以创建常量数组:
const cars = ["Audi", "BMW", "porsche"];
// 您可以更改元素:
cars[0] = "Honda";
// 您可以添加元素:
cars.push("Volvo");
//但是您无法重新为常量数组赋值:
const cars = ["Audi", "BMW", "porsche"];
cars = ["Honda", "Toyota", "Volvo"]; // ERROR

浙公网安备 33010602011771号