let、const、var 的区别

let、const、var 的区别

var:使用 var 声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象
let:使用 let 声明的变量,其作用域为该语句所在的代码块内,不存在变量提升。
const:使用 const 声明的是常量,在后面出现的代码中不能再修改该常量的值。

var let const
函数级作用域 块级作用域 块级作用域
变量提升 不存在变量提升 不存在变量提升
值可以改变 值可以改变 值不可以改变
1.关于let
 let arr = [];
 for (let i = 0; i < 2; i++) {
     arr[i] = function () {
         console.log(i); 
     }
 }
 arr[0]();
 arr[1]();

image.png
2.关于const
//常量赋值后,值不能修改。

const PI = 3.14;
 PI = 100; // 报错Assignment to constant variable. 

const ary = [100, 200];
ary[0] = 'a';
ary[1] = 'b';
console.log(ary); // ['a', 'b']; 
ary = ['a', 'b']; // 报错Assignment to constant variable.

3.关于var

var关键字声明的变量,无论实际声明的位置在哪,都会被视为声明在函数的顶部、如果声明不在任意函数内,则视为在全局作用域的顶部

你可能感兴趣的:(let、const、var 的区别)