javascript中var与let、const的区别详解

 更新时间:2022年12月23日 16:53:22   作者:YINGYAN  
这篇文章主要介绍了javascript中var与let、const的区别详解,需要的朋友可以参考下

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

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

let b = 10;
console.log(b,window.b);    // 10 undefined

const c = 1;
console.log(c,window.c);    // 1 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;
}

console.log(a); // 100
console.log(b)  // 报错:b is not defined  ===> 找不到b这个变量

if(1){

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

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

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已经被声明了。

五、暂存死区

var a = 100;

if(1){
    a = 10;
    //在当前块作用域中存在a使用let/const声明的情况下,给a赋值10时,只会在当前作用域找变量a,
    // 而这时,还未到声明时候,所以控制台Error:a is not defined
    let a = 1;
}

六、const

/*
*   1、一旦声明必须赋值,不能使用null占位。
*
*   2、声明后不能再修改
*
*   3、如果声明的是复合类型数据,可以修改其属性
*
* */

const a = 100; 

const list = [];
list[0] = 10;
console.log(list);  // [10]

const obj = {a:100};
obj.name = 'apple';
obj.a = 10000;
console.log(obj);  // {a:10000,name:'apple'}

以上就是javascript中var与let、const的区别详解的详细内容,更多关于javascript中var与let、const的区别的资料请关注脚本之家其它相关文章!

相关文章

  • 详解JavaScript高级正则表达式

    详解JavaScript高级正则表达式

    这篇文章主要为大家介绍了vue组件通信的几种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • JavaScript 键盘event.keyCode值列表大全

    JavaScript 键盘event.keyCode值列表大全

    event.keyCode值列表大全,对于需要根据键盘按键触发相应事件的朋友需要。
    2010-08-08
  • 网页收藏夹显示ICO图标(代码少)

    网页收藏夹显示ICO图标(代码少)

    在添加网页到收藏夹之后会看到一个漂亮的图标,很好奇是怎么实现的呢?下面小编就给大家讲解下网页收藏夹显示ICO图标(代码少),有需要的小伙伴可以来参考下
    2015-08-08
  • js单词形式的运算符

    js单词形式的运算符

    这篇文章主要介绍了js单词形式的运算符,需要的朋友可以参考下
    2014-05-05
  • javascript下判断一个对象是否具有指定名称的属性的的代码

    javascript下判断一个对象是否具有指定名称的属性的的代码

    hasOwnProperty 方法 返回一个布尔值,指出一个对象是否具有指定名称的属性。
    2010-01-01
  • Javascript浅谈之this

    Javascript浅谈之this

    这篇文章主要介绍了Javascript中的this,有需要的朋友可以参考一下
    2013-12-12
  • 浅谈javascript中onbeforeunload与onunload事件

    浅谈javascript中onbeforeunload与onunload事件

    javascript中onbeforeunload与onunload事件就是页面加载前与页面关闭时的两个功能的函数,可以防止页面刷新时给提示再刷新或页面关闭时给出提示,下面我来介绍onbeforeunload与onunload事件用法。
    2015-12-12
  • 关于JSON的定义以及如何使用

    关于JSON的定义以及如何使用

    这篇文章主要介绍了关于JSON的定义以及如何使用,JSON 的名称中虽然带有JavaScript,但这是指其语法规则是参考JavaScript对象的,而不是指只能用于JavaScript语言,需要的朋友可以参考下
    2023-07-07
  • 深入理解JavaScript 函数

    深入理解JavaScript 函数

    下面小编就为大家带来一篇深入理解JavaScript 函数。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • 了解前端理论:rscss和rsjs

    了解前端理论:rscss和rsjs

    在前端开发中,我们会尝试去定一些规则和约定,来让项目质量更高,更易于维护。而对于这些规则和约定,我们也会希望它内容简单,容易理解。下面小编来和大家一起学习一下
    2019-05-05

最新评论