JavaScript基础知识——var、let、const的区别

1.JS的作用域

首先,作用域的概念其实就相当于是一个圈子的概念,有句话说的话,总有一些圈子我们是挤不进去的。换句话说,这个圈子里面的东西我们也是接触不到的。而作用域就可以比喻为圈子。

1.1 作用域类别

在ES5中,作用域只有全局作用域和函数作用域两种,普通的{}代码块仍然属于全局作用域,但是,在ES6中新增了一种块级作用域。

1.2 变量类别

变量的话,主要有全局变量和局部变量两种,主要是看这个变量是在哪里被声明的。

  • 全局变量:使用var声明的全局变量会被挂载到window对象上,可以使用window.property访问到
  • 局部变量:局部变量存在于函数作用域以及块级作用域中,外部的圈子是访问不到的。

1.3 var 、let 、const的使用场景以及区别

  1. var
    使用var的话,主要有4种情况:

    • 在全局作用域中使用var,在任何地方都可以被使用到
    • 在函数中使用var声明变量,由于函数作用域可以构成局部作用域,所以此处声明的变量,在其他的地方访问不到。
    • 用在循环体里面,循环体里面使用var定义的变量,在全局作用域中仍然 能够被访问到。
    • {var a=2},不会构成局部访问,仍然属于全局作用域
  2. let 和const
    在ES6中,提出了块级作用域的概念:块级作用域的范围仅仅是{}这部分区域。 ES6 可以使用 let、const 关键字来实现块级作用域。

    注意:let 声明的变量只在 let 变量所在的代码块 {} 内才能被访问到,一旦超出这个范围,就无法被访问

    const定义常量与使用let 定义的变量相似:

    • 二者都是块级作用域
    • 都不能和它所在作用域内的其他变量或函数拥有相同的名称

    但是,也存在不同:

    • const声明的常量必须初始化,而let声明的变量不用
    • const 定义常量的值不能通过再赋值修改,也不能再次声明。 而 let 定义的变量值可以修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值