Js中:var.let.const的区别以及用法

本文详细介绍了JavaScript中var、let和const声明变量的区别。var存在变量提升和全局污染问题,let和const具有块级作用域,其中let允许重新赋值但不允许在同一作用域内重复声明,const一旦声明则不可更改,包括数组和对象的值。此外,let和const都会在声明前形成暂时性死区,避免了变量提升带来的困扰。
摘要由CSDN通过智能技术生成

目录

1.var的特点以及用法

2.let的特点以及用法

3.临时性死区

4.const的特点以及用法

5.块级作用域


首先我们要知道var let const都是用来定义一个变量的

1.var的特点以及用法

var的特点总结:

  1. 有变量提升
  2. 定义了相同的变量名时候,不会报错,只会覆盖(后覆盖前)
  3. 可以去掉var关键字,变成全局变量
  4. 可以一次定义多个变量
  5. 可以被低版本浏览器兼容

我们来具体看下每个var的特点:

(1)因为代码是从上往下读取的,当用var定义一个变量却未赋值的时候,返回的是undefined;

当被赋值后,显示的是值,那么我们由此可以看出var定义一个变量的时候,是拥有变量提升的,因为它从undefined变成了数值;

        var i;
        /* 这个时候i打印出来的是undefined
        因为i还未赋值 */
        console.log(i)
        i=123;
        /* 这个时候i打印出来的是123
        因为i赋值并且有变量提升的特点 */
        console.log(i)

(2)当var定义了相同的变量名,但是里面数值不一样的时候,会发生覆盖的情况,且不会报错(低版本的浏览器也可以兼容)

        var s =200;
        var s =300;
        /* 打印出来显示是300
        因为覆盖了s=200 */
        console.log(s)

(3)我们在把var关键字去掉的时候,那么这个变量会变成全局变量,可被全局调用

(注:虽然可以通过省略var来实现定义全局变量,但不推荐这么做,因为这在维护起来会很难维护,容易看代码的时候看迷。而且在严格模式下,这样省略就会造成给为声明的变量赋值,就会报错。)

        k = 300;
        /* 打印出来显示是300
        且是全局变量 */
        console.log(k)

(4)可以多次定义变量

        var a=1;b=2;c=3;
        /* 打印出来显示1,2,3 */
        console.log(a,b,c)

2.let的特点以及用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值