美文网首页
js中的let和var

js中的let和var

作者: 番茄炒西红柿啊 | 来源:发表于2021-08-16 16:33 被阅读0次

[toc]

js中let和var区别

1. 作用域不同

  • let定义的变量作用域仅限于定义该变量的代码块中。比如:if ... else,for...in...,switch...case...等等
  • var定义的变量作用域为定义该变量的函数范围中(当在函数中定义时),或者为全局的范围(当定义为全局变量时)。

比如以下面一段if条件判断代码为例:

(function(){
  if (true) {
    var a = 13
  }
  console.log(a) //控制台输出:13
})()

在if代码块内使用var定义的变量a,在代码块外仍然可以访问,控制台打印出了a的值。

(function(){
  if (true) {
    let a = 13
  }
  console.log(a) //控制台输出:ReferenceError: a is not defined
})()

当我们将var替换成let时,在if代码块外访问时,会直接报错。


2. 访问顺序的要求不同

  • var定义变量,可以在未定义前访问。
  • let定义变量,必须先定义,后访问。
(function(){
    console.log(a)
    console.log(b)
    var a = 10
    let b = 11
})()

控制台输出:

undefined
ReferenceError: Cannot access 'b' before initialization

a可以在var未定义前访问,值为undefinedblet未定义前访问直接报错。


3. 是否可被重复定义

  • let:同一代码块中,同名变量不可被重复定义。
  • var:同一作用域下,同名变量可以被重复定义。

还是以if条件语句为例:

let:

(function(){
    if (true) {
        let a = 11
        let a = 12
        console.log(a) // 控制台:SyntaxError: Identifier 'a' has already been declared
    }
})()

var:

(function(){
    if (true) {
        var a = 11
        var a = 12
        console.log(a) // 控制台:12
    }
})()

结语

笔者的入行语言是Objective-Cswift,所以认为js中的let相比var更严谨,也更符合我们的编程思维和习惯。个人更偏向使用let而不是var

相关文章

  • js中的let和var

    [toc] js中let和var区别 1. 作用域不同 let定义的变量作用域仅限于定义该变量的代码块中。比如:i...

  • 【JS】从ECMA学习let、const、var变量声明与声明提

    let、const、var是JS中的声明关键字 let和const 我们熟知的let和const的特性,常见的就有...

  • js 中let 和 var 的区别

    首先我们看一个例子 请问这段代码输出是什么~? 把var换成let呢? 为什么会出现这种情况呢,接下来我们看完le...

  • JS中let和var的区别

    前言 ES6 新增了let命令,用来声明局部变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码...

  • js中var和let的区别

    首先var和let在js中都是变量的标识符,都可以定义一个变量,但二者也有区别,二者区别在于声明的次数。var可以...

  • 2018-09-04

    js变量和常量 JS中与变量常量声明相关的关键字有var、let以及const,其中let和const是ES6的新...

  • js问题

    js中let和var定义变量的区别,主要体现在作用于的不同。 var定义的变量是全局变量或者函数变量。 let定义...

  • JS 中 var、let、const

    const 必须初始化值,let 和 var 可以不初始值 var 可重复声明,let 和 const 不可重复声...

  • sample

    一、var与let JS中的块级作用域,var、let、const三者的区别 var是函数级作用域,没有块级作用域...

  • js 中声明常量关键字 var、let、const

    js 中声明常量的关键字:var、let、const,其中 let 和 const 是 ES6 中新增的关键字。 ...

网友评论

      本文标题:js中的let和var

      本文链接:https://www.haomeiwen.com/subject/gpzmbltx.html