JavaScript let 和 const

简介: JavaScript let 和 const

ECMAScript 2015(ECMAScript 6)

ES2015(ES6) 新增加了两个重要的 JavaScript 关键字: letconst

let 声明的变量只在 let 命令所在的代码块内有效。

const 声明一个只读的常量,一旦声明,常量的值就不能改变。

在 ES6 之前,JavaScript 只有两种作用域: 全局变量函数内的局部变量


全局变量

在函数外声明的变量作用域是全局的:

实例

var carName = "Volvo";  // 这里可以使用 carName 变量 function myFunction() {    // 这里也可以使用 carName 变量}


尝试一下 »

全局变量在 JavaScript 程序的任何地方都可以访问。


局部变量

在函数内声明的变量作用域是局部的(函数内):

实例

// 这里不能使用 carName 变量 function myFunction() {    var carName = "Volvo";     // 这里可以使用 carName 变量} // 这里不能使用 carName 变量


尝试一下 »

函数内使用 var 声明的变量只能在函数内访问,如果不使用 var 则是全局变量。


JavaScript 块级作用域(Block Scope)

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

{ 

   var x = 2; 

}

// 这里可以使用 x 变量

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

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

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

{ 

   let x = 2;

}

// 这里不能使用 x 变量


重新定义变量

使用 var 关键字重新声明变量可能会带来问题。

在块中重新声明变量也会重新声明块外的变量:

实例

var x = 10;// 这里输出 x 为 10{      var x = 2;     // 这里输出 x 为 2}// 这里输出 x 为 2


尝试一下 »

let 关键字就可以解决这个问题,因为它只在 let 命令所在的代码块 {} 内有效。

实例

var x = 10;// 这里输出 x 为 10{      let x = 2;     // 这里输出 x 为 2}// 这里输出 x 为 10


尝试一下 »

目录
相关文章
|
1月前
|
JavaScript 前端开发 开发者
|
27天前
|
JavaScript 前端开发
|
1月前
|
JavaScript 前端开发
揭秘JavaScript变量的三大守护神:从var到let,再到const,究竟隐藏了哪些秘密?
【8月更文挑战第22天】在JavaScript中,`var`、`let`和`const`用于声明变量,但各有特点。`var`有函数作用域并会被提升至作用域顶部。`let`提供块级作用域且存在暂时性死区,不允许提前访问。`const`同样拥有块级作用域,用于声明常量,一旦初始化便不可改变。现代开发倾向于使用`let`和`const`以获得更清晰的作用域控制和避免潜在错误。
27 0
|
3月前
|
JavaScript 前端开发 开发者
JavaScript中的const关键字解析
JavaScript中的const关键字解析
|
3月前
|
JavaScript 前端开发
JavaScript语法关键点:变量用`var`、`let`、`const`声明
【6月更文挑战第22天】JavaScript语法关键点:变量用`var`、`let`、`const`声明;七种数据类型包括`Number`、`String`、`Boolean`、`Null`、`Undefined`、`Symbol`和`Object`;运算符如算术、比较、逻辑和赋值;流程控制有`if...else`、`switch`和各种循环。了解这些是JS编程的基础。
51 3
|
2月前
|
JavaScript
Js,定义数组的方法,let 数组名 = [数据1,数据2,........,数据n],取值方法,数组名[x],arr[0],let sum sum = sum + arr[0],求和的写法,平均值
Js,定义数组的方法,let 数组名 = [数据1,数据2,........,数据n],取值方法,数组名[x],arr[0],let sum sum = sum + arr[0],求和的写法,平均值
|
2月前
|
JavaScript 前端开发
|
3月前
|
JavaScript 前端开发 C++
JavaScript中的let关键字详解
JavaScript中的let关键字详解
|
2月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
72 2
|
2月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
65 4