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中的自定义事件编写

    这篇文章主要介绍了JavaScript中的自定义事件编写,自定义事件是在浏览器中编写Web页面操作功能的基本方式,需要的朋友可以参考下
    2016-05-05
  • javascript的防抖和节流你了解吗

    javascript的防抖和节流你了解吗

    这篇文章主要为大家介绍了javascript的防抖和节流,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • javascript操作字符串的原生方法

    javascript操作字符串的原生方法

    这篇文章主要介绍了javascript操作字符串的原生方法,并附上了相关示例,给需要的小伙伴参考下
    2014-12-12
  • 超全面的javascript中变量命名规则

    超全面的javascript中变量命名规则

    javascript 有三大经典的变量命名法:匈牙利命名法,驼峰式命名法和帕斯卡命名法。今天主要介绍下这三种命名方式。文中通过示例代码介绍的很详细,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02
  • JavaScript中this用法学习笔记

    JavaScript中this用法学习笔记

    在本篇文章里小编给大家分享了关于JavaScript中this用法学习笔记以及知识点总结,有兴趣的朋友们学习下。
    2019-03-03
  • javascript中声明函数的方法及调用函数的返回值

    javascript中声明函数的方法及调用函数的返回值

    这篇文章主要介绍了javascript中声明函数的方法及调用函数时的返回值,示例如下,不了解的方法可以参考下
    2014-07-07
  • js控制随机数生成概率代码实例

    js控制随机数生成概率代码实例

    这篇文章主要介绍了js控制随机数生成概率,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • js学习笔记之事件处理模型

    js学习笔记之事件处理模型

    本篇文章主要介绍了js学习笔记之事件处理模型,对初学这具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-10-10
  • 关于前端要知道的 AST知识

    关于前端要知道的 AST知识

    这篇文章主要介绍了关于前端要知道的 AST知识,在计算机科学中,抽象语法树是源代码语法结构的一种抽象表示,需要的朋友可以参考下
    2023-04-04
  • JavaScript高级程序设计(第3版)学习笔记12 js正则表达式

    JavaScript高级程序设计(第3版)学习笔记12 js正则表达式

    前面在分析PhoneGap源码的时候,曾经总结过一次正则表达式的用法,为了不同系列文章的完整性,这里将那里的总结迁移过来
    2012-10-10

最新评论