前言
- ES2015(ES6) 新增加了两个重要的 JavaScript 关键字: let 和 const。
- let 声明的变量只在 let 命令所在的代码块内有效。
- const 声明一个只读的常量,一旦声明,常量的值就不能改变。
- 在 ES6 之前,JavaScript 使用var声明变量只有两种作用域: 全局变量 与 函数内的局部变量。
let 声明变量作用域
- 使用let声明的变量,首先具有块级作用域的概念,在块级代码声明的变量,外面无法引用
- 什么是块级作用域?
- 比如if 后面大括号的内容,for 循环大括号里面的循环体,都是块级。
a = 10;
if (a>0){
let x = 'hello'; // let 声明块级变量
console.log(x);
}
console.log(x); // x is not defined
//如果块级代码外面也有同一个名称变量,使用let互不影响
a = 10;
let x = 'world'
if (a>0){
let x = 'hello'; // let 声明块级变量
console.log(x); // hello
}
console.log(x); // world
let 和 var 不一样的地方
// 1、var 可以对同一个变量重复声明,但是let不能重复声明
// 使用 var
var x = 'hello';
var x = 'world';
console.log(x); // world
// 使用let
let y = 'world';
let y = 'world'; // 报错
//2、变量提升,let 声明的变量没有提升
console.log(x) // undefined
var x = 'hello'
console.log(y) // 报错
let y = 'world';
//3、全局作用域
//使用 var 关键字声明的全局作用域变量属于 window 对象:
//使用 let 关键字声明的全局作用域变量不属于 window 对象:
var x = "hello";
// 可以使用 window.x 访问变量
let y= "world";
// 不能使用 window.y访问变量
标签:变量,作用域,JavaScript23,let,var,world,声明
From: https://www.cnblogs.com/xwltest/p/17610274.html