es6之let与const

作者: 前端辉羽 | 来源:发表于2020-01-09 16:54 被阅读0次

本文目录:

  • 1.let和块级作用域
  • 2.const命令
  • 3.var、let、const三者的区别

1.let和块级作用域

在es5中,js的作用域分为全局作用域和局部作用域,通常是用函数来区分的,函数内部属于局部作用域,在es6中新增了块级作用域的概念,使用{}括起来的区域是一个块级作用域

{
  var a = 10
}
// 输出10
console.log(a)

如果上述代码中定义变量的时候使用let,在外面使用变量a就会报错

{
    let a = 10
}
// 以下输出会报错
console.log(a)

es6中新增了块级作用域,let定义的a只能在当前的{}中使用,在括号外面会报错
注意: 不能重复去定义一个变量,例如,下面这种写法就会报错

let b = 10
let b = 20

如上代码,重复定义一个变量b会报错

2.const命令

const命令和let命令的区别是const定义的是常量,let定义的是变量,常量通常是不会被修改的

定义常量PI
const PI = 3.1415926
console.log(PI)

const 也是在当前块级作用域中有效

{
    const PI = 3.1415926
}
console.log(PI)

如果像上面代码中那样写会报错,const在块级作用域中定义,就不能在外面打印,否则会报错
注意1:常量是不能被修改的(存储基本数据类型的时候),如果试图去修改它,会报错,但是如果存储的是对象,那么引用不可以被改变,至于对象里面的数据如何变化,是没有关系的
下面这样写会报错,因为常见不可修改

const PI = 3.14
PI = 3.2  

下面这样写是也会报错,因为对象的引用关系被改变了

const BASE = {}
BASE = {}   

这里直接赋值一个新对象,引用关系发生变化,会报错
如果只改变对象中的数据,那是不会报错的,例如下面这样写:
BASE.a = 123 //这里只是给对象添加了属性 并没有改变对象引用
注意2: const 也不能重复定义,否则会报错

const PI = 3.14
const PI = 3.14  // 这里也会报错

注意3: const定义常量时必须赋值

const PI
PI = 3.14 //这里也会报错

3.var、let、const三者的区别

var

由于变量声明(以及其他声明)总是在任意代码执行之前处理的,所以在代码中的任意位置声明变量总是等效于在代码开头声明。这意味着变量可以在声明之前使用,这个行为叫做“hoisting”。“hoisting”就像是把所有的变量声明移动到函数或者全局代码的开头位置。
var定义变量,没有块的概念,可以跨块访问,不能跨函数访问,不初始化出现undefined,不会报错。

let

let必须先声明后使用。let定义变量,只能在块作用域里访问,也不能跨函数访问,对函数外部无影响。

const

const必须先声明后使用。const定义常量,只能在块作用域里访问,也不能跨函数访问,使用时必须初始化(即必须赋值),而且不能修改。

相关文章

  • ES6之 let 和 const 命令

    ES6 之 let 和 const 命令 1、let 命令 1.1、基本用法 ES6 新增了let命令,用来声明变...

  • TS中 var 和 let 的区别

    let 和 const 是 ES6 中新增的声明对象的类型。与 var 相比,let 和 const 不存在...

  • JavaScript ES6 - let 与 const 使用方

    ES6 语法: let 与 const 本文主要讲解 let / const / var 关键字相关内容, 解释了...

  • (JS)

    ES6 let、const和var的区别 let和const声明变量不存在变量提升 let和const不能重复声明...

  • 认真的变量

    ES6加了更多特性,let,const使程序更加的严格与规范。 要使用let,const等严格变量,要在文件首行写...

  • es6,es7,es8语法总结

    ES6 1. var let const let,const具有块级作用域,不具有变量提升 const 用...

  • ES 6 7 8 随笔 QAQ

    ES6 1. var let const let,const具有块级作用域,不具有变量提升 const 用...

  • es6 :let const 解构赋值

    let,const let和const是es6新增的两个变量声明关键字,与var的不同点在于:(1)let和con...

  • ES6(let 与 const)

    ES6中引入了let 和 const来声明变量,我们来看下let 和 const 的使用 一、let let定义的...

  • react 入门基础(一)之ES6

    ####ES6 let const var 三者的区别 ### 1. let const 不能重复声明变...

网友评论

    本文标题:es6之let与const

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