[记录] ECMAScript 6 - let 和 const

简介: [记录] ECMAScript 6 - let 和 const

title: ES6 - let 和 const
date: 2017年8月15日 10:30:40
tags: js
categories: 教程

author: "JiaWei"

const and let

let const 教程

var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。

为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。

// var 的情况
console.log(foo); // 输出undefined
var foo = 2;

// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;
上面代码中,变量foo用var命令声明,会发生变量提升,即脚本开始运行时,变量foo已经存在了,但是没有值,所以会输出undefined。变量bar用let命令声明,不会发生变量提升。这表示在声明它之前,变量bar是不存在的,这时如果用到它,就会抛出一个错误。

目录
相关文章
|
6月前
|
JavaScript 前端开发 C++
|
6月前
|
人工智能 JavaScript 前端开发
ECMAScript 6入门之let and const(一)
ECMAScript 6入门之let and const(一)
41 0
|
3月前
|
JavaScript 前端开发 开发者
|
1月前
|
JavaScript 前端开发
【JavaScript】let,const和var的区别
总的来说,随着ECMAScript 6(ES6)及后续版本的推广,`let`和 `const`因其增强的块级作用域和对变量行为的更严格控制,逐渐成为现代JavaScript编码实践中推荐使用的变量声明方式。而 `var`由于其历史遗留的局限性,正逐渐被边缘化,但在维护老代码或处理特定兼容性需求时仍需了解。
28 3
|
3月前
|
编译器
【Bug记录】C2662:不能将this指针从const转换为非const
【Bug记录】C2662:不能将this指针从const转换为非const
|
5月前
|
JavaScript 前端开发
JavaScript中的var变量详解:定义、提升与注意事项
JavaScript中的var变量详解:定义、提升与注意事项
138 2
|
5月前
|
JavaScript 前端开发
JavaScript语法关键点:变量用`var`、`let`、`const`声明
【6月更文挑战第22天】JavaScript语法关键点:变量用`var`、`let`、`const`声明;七种数据类型包括`Number`、`String`、`Boolean`、`Null`、`Undefined`、`Symbol`和`Object`;运算符如算术、比较、逻辑和赋值;流程控制有`if...else`、`switch`和各种循环。了解这些是JS编程的基础。
58 3
|
6月前
const的定义和使用解析
const的定义和使用解析
|
JavaScript 前端开发
javascript变量定义中var let const的区别
ECMAScript 变量是松散类型的,意思是变量可以用于保存任何类型的数据。每个变量只不过是一 个用于保存任意值的命名占位符。有 3 个关键字可以声明变量:var、const 和 let。
|
JavaScript 前端开发
谈谈 JavaScript 中的空值合并操作符 Nullish coalescing operator
谈谈 JavaScript 中的空值合并操作符 Nullish coalescing operator
161 0
谈谈 JavaScript 中的空值合并操作符 Nullish coalescing operator