当前位置:首页 > 技术分享 > 正文内容

探究var、let、const 的区别?

冰凉2022-10-01 23:31技术分享1

简介:var 已经是众所周知了 但是新加入的let 和const 有什么特性呢?


先来说一下这个用var来定义变量的bug

  • 1.在JS函数中的var声明,其作用域是函数体的全部

for(var i=0;i<10;i++){
        var a = 'a';
        }
        console.log(a);

明明已经不在for循环内了,却还能访问for循环的变量a。

  • 2.循环内变量共享

for (var i = 0; i < 3; i++) {
      setTimeout(function () {
        console.log(i)
      }, 1000);
 }

按照正常逻辑他应该会打印出0、1、2。结果却打印了3个3。

那let的出现就是能解决这个var的bug的 可以数试着把上面的var改成let看浏览器会不会报错?


我个人觉得 let 相较于var 更严谨。

  • let定义的变量拥有块级作用域。  也就是说用let声明的是有作用域的,而不是整个外层函数。如果上面的例子用let定义就会发生变化

  • 用let重定义变量就会抛出错误


代码说话

let a = 'a';
let a = 'b';

这两行代码就是错误的 浏览器会报错 因为重复定义了a。

除了这些不同之外,应该let和var是差不多的得了


const

第三个就是 const,const是用来定义常量的。

就是说给它赋个值,任你在浏览器再怎么赋值 他的值都不会发生改变的。

常量常量 ,不变的才叫常量。

版权声明:本文由AZPL工作室发布,如需转载请注明出处。

笔记本交流群:1025638188

本文链接:https://www.azplstudio.top/post/56.html

分享给朋友:

“探究var、let、const 的区别?” 的相关文章

JavaScript基础04

JavaScript基础04

变量的作用域function yc(){             v...

Java 环境变量配置搭建

Java 环境变量配置搭建

Java这个语言 身边朋友都说这个搭建环境变量之类的很麻烦 其实不止Java需要搭建 例如Go Python C 等等都需要搭建  我就把我自己搭建Java的步...

评论列表

啊機
啊機 IP:广东省
2022-10-03 21:20

?

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。