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

探究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 的区别?” 的相关文章

Java 的一些基本数据类型

Java 的一些基本数据类型

在Java中内置了一些数据类型  声明变量规定的数据类型Java 提供了八种基本数据类型,六种数字类型(四个整数型 两个浮点型)byte最小值是:-128最大值是:127默认值是:0例子:b...

给大家整个活——C++爱心

给大家整个活——C++爱心

第一篇技术文章不知道写啥,就给大家整个活吧。#include <stdio.h> #include <stdlib.h> int main(i...

评论列表

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

?

发表评论

访客

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