美文网首页
var、const和let

var、const和let

作者: WANG_M | 来源:发表于2021-08-10 16:38 被阅读0次

一.var声明的变量会挂载在window上,而const和let变量不会

var a = 100;
console.log(a,window.a);   // 100 100
      
let b = 1;
console.log(b,window.b);   //1 undefined
      
const c = 10;
console.log(c,window.c);   //10 undefined

二.var声明变量存在变量提升,let和const不存在变量提升

console.log(a); // undefined  ------  a已声明还没赋值,默认得到undefined值
var a = 100;

console.log(b); // 报错:b is not defined  ------ 找不到b这个变量
let b = 10;

console.log(c); // 报错:c is not defined  ------ 找不到c这个变量
const c = 10;

三.let和const声明形成块作用域

if(1){
    var a = 100;
    let b = 10;
    const c = 1;
}
console.log(a); // 100
console.log(b)  // 报错:b is not defined ------- 找不到b这个变量
console.log(c)  // 报错:c is not defined ------- 找不到c这个变量

四、同一作用域下var可以声明同名变量,而let和const不能

var a = 100;
console.log(a); // 100

var a = 10;
console.log(a); // 10
let a = 100;
let a = 10;
//  控制台报错:Identifier 'a' has already been declared  ------- 标识符a已经被声明。

let 声明的变量,具有如下几个特点:

(1)let 声明的变量具有块作用域的特征。
(2)在同一个块级作用域,不能重复声明变量
(3)let 声明的变量不存在变量提升,也就是 let 声明存在暂存死区

const声明的变量,除了有let的几个特点外,还有一个声明后不能再修改,也就是常量。

相关文章

网友评论

      本文标题:var、const和let

      本文链接:https://www.haomeiwen.com/subject/bexfbltx.html