let
let具有作用域的代码示例
Document
//var 声明的变量往往会越域
//let声明的变量有严格的作用域
{ //此处为代码块
var a = 1;
let b = 2;
}
console.log(a);
console.log(b);
控制台打印如下, 可以看到1 成功打印, 而b说未定义, 说明了let是有严格 的作用域的. let只能声明一次示例 此 代码能正常运行, var可以声明多次, 以最后一次为准
//var可以声明同一变量多次
//let 只能声明一次
var m =1 ;
var m =2 ;
let n=3 ;
console.log(m);
console.log(n);
let n=3 ;
let n=2 ;
console.log(n);
报错如下, n已经被定义. 说明let定义的变量, 只能声明一次.
//var 会变量提升
//let 不存在变量提升
console.log(x);
var x =10;
console.log(y);
let y = 20 ;
运行结果如下. 关于js的变量提升, 可以看看下面这篇文章 变量提升 就是声明到一个变量所在作用域的顶端去执行, 但只是声明,未赋值 https://blog.csdn.net/qq_39712029/article/details/80951958
const 声明变量后 ,不允许改变. 并且一旦声明后,必须初始化, 否则报错.
const a = 1;
a = 3 ;
报错如下, 如下的代码也报错, 未初始化.