JS let和const

JS块级别作用域(Block Scope)

使用var关键字声明的变量不具有块级作用域的特性,它在{}外依然能被访问到

{

var x = 2;

}

在 ES6 之前,是没有块级作用域的概念的。

ES6 可以使用 let 关键字来实现块级作用域。

let 声明的变量只在 let 命令所在的代码块{}内有效,在{}之外不能访问。

{

    let x = 2;

}

// 这里不能使用 x 变量

const关键字

用于声明一个或者多个常量,声明时必须进行初始化,且初始化后值不可再修改。、

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

二者都是块级作用域

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

两者还有以下两点区别:

const声明的常量必须初始化,而

let声明的变量不用

const 定义常量的值不能通过再赋值修改,也不能再次声明。而 let 定义的变量值可以修改。

并非真正的常量

const 的本质: const 定义的变量并非常量,并非不可变,它定义了一个常量引用一个值。使用 const 定义的对象或者数组,其实是可变的。下面的代码并不会报错:

实例

// 创建常量对象

const car = {type:"Fiat", model:"500", color:"white"};

// 修改属性:

car.color = "red";

// 添加属性

car.owner = "Johnson";

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • JS块级作用域 1.使用 var 关键字声明的变量不具备块级作用域的特性,它在 {} 外依然能被访问到 2.使用 ...
    诚恳_9aba阅读 443评论 0 1
  • 1. let 有块级作用域,var 没有 2. var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为u...
    shuangsally阅读 231评论 0 0
  • 4. 如何在ES5环境下实现let 这个问题实质上是在回答let和var有什么区别,对于这个问题,我们可以直接查看...
    林不羁吖阅读 424评论 0 0
  • 1. 块级作用域和变量提升 被{}包裹的语句,就是代码块,可以被执行。先看一个和代码块相关的题目: 第一个算式里面...
    Lawson刘阅读 465评论 0 0
  • let 只在作用域内有效,作用域外无法访问。 变量值可以随意改变,不限次数。 const 只初始化一次,只读属性,...
    魏永_Owen_Wei阅读 383评论 0 0

友情链接更多精彩内容