现在的位置: 首页 > 综合 > 正文

ES6中let,const和 var 有什么区别

2020年02月20日 综合 ⁄ 共 982字 ⁄ 字号 评论关闭

  在面试的过程中,面试官会经常问一个基础性的问题,那就是let、const、var的区别。那么我们今天就来一起学习它们之间的区别。

  let命令的基本用法在EC6中,新增了let命令,用于变量的声明,用来取代EC5中的var命令,消除var声明变量的不合理、不严谨之处。Const用于声明常量。那么我来先学习let与var的区别。

  let、const、var的区别

  1. let不存在变量提升使用let声明的变量,不会像var那样存在“变量提升”的现象。所以使用let声明变量,必须遵循“先声明,后使用”的原则。否则报错。但如果是var声明的变量,则不会报错。

  2. let声明的变量,存在块级作用域let声明的变量只在所在声明的代码块有效。块级作用域由{}包括,if语句和for语句里面的{]也属于块级作用域

  3. let不允许在同一作用域里进行重复声明同一个变量在同一个作用域里,如果使用var进行声明变量,后面会覆盖前面的 。

  4. 暂时性死区:在代码块内,使用let声明变量之前,该变量都是不可以使用的只要在同一个作用域内存在let命令,它所声明的变量就”绑定”在这个作用域内,不管外部有没有声明。

  ES6规定,如果在区块中存在let和const声明的变量,则这个区块对这些声明的变量从一开始就形成一个封闭的作用域。不管在外部有没有声明这个变量。必须遵守“先声明,后使用”的原则,否则报错。总之,暂时性死区的本质就是,只要一进入当前作用域,所使用的变量就已存在,但是不可获取,只有等到声明变量的哪一行代码的出现,在可以获取和使用该变量。2. const命令的基本使用Const一般用来声明常量,一但声明,其值就不能更改1) .const声明的常量不能改变,意味着const一旦声明常量,就必须同时初始化。不能先声明,后初始化,这样会报错2.) 与let一样。const声明的常量也只在块级作用域内有效3) .与let一样,必须先声明,后使用4.) 与let一样,在同一作用域,const不能重复声明同一常量

  5.用const声明的是一个对象时,属性可以修改。因为const保存的是对象的地址,当对象的属性发生改变时,地址并不改变,所以const声明对象时,属性可以修改。

  以上就是PHP脚本占用内存太多的解决方案,要了解更多PHP以及内存知识,请关注学步园。

抱歉!评论已关闭.