JavaScript let 和 const
let 声明的变量只在 let 命令所在的代码块内有效。
const 声明一个只读的常量,一旦声明,常量的值就不能改变
====在函数体外或代码块外使用 var 和 let 关键字声明的变量也有点类似。
====它们的作用域都是 全局的
====在相同的作用域或块级作用域中,不能使用 let 关键字来重置 var 关键字声明的变量
====在相同的作用域或块级作用域中,不能使用 let 关键字来重置 let 关键字声明的变量
====在相同的作用域或块级作用域中,不能使用 var 关键字来重置 let 关键字声明的变量
====let 关键字在不同作用域,或不同块级作用域中是可以重新声明赋值的
const
声明的常量必须初始化,而let
声明的变量不用
注意点:const 的本质: c
onst 定义的变量并非常量,并非不可变,它定义了一个常量引用一个值。使用 const 定义的对象或者数组,其实是可变的。下面的代码并不会报错:
// 创建常量对象 const car = {type:"Fiat", model:"500", color:"white"}; // 修改属性: car.color = "red"; // 添加属性 car.owner = "Johnson";
但是我们不能像这样对常量数组重新赋值
try { const cars = ["Saab", "Volvo", "BMW"]; cars = ["Toyota", "Volvo", "Audi"]; } catch (err) { document.getElementById("demo").innerHTML = err; }