text":"ES6 语法: let 与 const
本文主要讲解 let / const / var 关键字相关内容 解释了它们的基本用法以及相关需要注意的知识点; 其中还包含一些作用域的相关概念。
let / const / var 它们的作用基本上是一致的 但是它们还是有很多区别的; 下面我们就来看看他们之间的区别与作用。
1. 作用域1. 在 ES6 之前 也就是 ES5 中 有两个作用域
1. 全局作用域
2. 函数作用域
2. 在 ES6 中新增加了 '块级作用域' {。
2. let 声明一个变量function test1() {
let num1 = 1111
var num2 = 2222
console.log('此时 let 与 var 没有任何区别: ' num1 num2);
// 此时使用 let 与 var 没有任何区别
test1()
// 打印结果:
// 此时 let 与 var 没有任何区别: 1111 2222
2.1 块级作用域// ES6 let
function test2() {
for (let index = 1; index < 3; index++) {
console.log('块级作用域内: ' index);
// 打印结果:
// 块级作用域内: 1
// 块级作用域内: 2
/**
* 1. 此处打印 'index' 报错: ReferenceError: index is not defined (报错的意思是: 引用错误
'index' 没有找到)
* 1. 这里体现的是: let 声明的变量 只在自己的块级作用域内有效。
使用 let 时 不能重复声明变量
* 2. ES6 是强制开启严格模式的; 在 ES5 中使用严格模式需要设置 \"use strict\";
* 1. 在严格模式下 变量未声明不能引用 否则就会报错 'ReferenceError'。
*/
// console.log('块级作用域 -外- 循环外打印 index: ' index);
// 打印结果:
// Uncaught ReferenceError: index is not defined
test2()
// 与 ES5 对比
function test3() {
for (var i = 1; i < 3; i++) {
console.log(i);
console.log('循环外打印 -- 得到最终结果 i: ' i);
// 打印结果:
// 循环外打印 -- 得到最终结果 i: 3
test3()
// 2.2 使用 let 时 不能重复声明变量function test4() {
/**
* 友情提示:
* 1. 报错: Error: Cannot find module \"./class/1-let与const命令.js\"
* 1. 有可能是文件没有编译成功
*/
let num = 1
let num = 2
// test4()
// 执行结果:
// 报错: Error: Cannot find module \"./class/1-let与const命令.js\"
const 关键字/**
* const 关键字
* 1. const 声明一个 '常量' (注意: 是常量而不是变量)
* 1. 常量的含义就是不能修改(不严谨)
* 2. const 也是有块级作用域的
* 3. const 声明的时候必须赋值
*/
function last1() {
const num1 = 3.1415926
console.log(num1);
last1()
3.1 const 声明的常量不能修改(不严谨)function last2() {
const num2 = 3.1415926
/**
* 报错: SyntaxError: \"num2\" is read-only (意思就是说 'num2' 是一个只读属性 不能修改)
*/
// num2 = 3333
// console.log('常量不能修改 num2 : ' num2);
// 打印结果:
// 报错: Error: Cannot find module \"./class/1-let与const命令.js\"
last2()
3.2 const 声明时必须赋值function last3() {
/**
* 报错: SyntaxError: Unexpected token (118:12) (意思是: 不完整)
*/
const num3;
// num3 = 3333 // 这里写与不写都会报相同的错
console.log('声明时必须赋值 num3 : ' num3);
last3()
3.3 const 不能修改这一句是不严谨的如果对你有所帮助 , 喜欢的可以点个关注; 文章会持续打磨。
有什么想要了解的前端知识吗? 可以在评论区留言 会及时跟进分享所相关内容。
整理知识点不易 每次都是在工作繁忙之余夜深人静之时整理 无论知识点是大是小 都会验证后再分享 以防自己
- javascript|Web前端培训:什么是 MEAN Stack?
- javascript|奢侈品级别音响B&W加持,峰米向行业第一发起冲击?
- javascript|帕特·基辛格被任命为英特尔CEO已有一年
- 李书福|从手机到卫星的跨界布局,“造车狂人”李书福的野心到底有多大?
- javascript|SSD、显卡速度再翻倍! 新一代PCIe 6.0标准正式定案
- 为何“卫星锅”会被禁用,它究竟能看到什么?原来背后暗藏玄机
- 国产6G布局迎来重大突破,试验卫星发射成功,美国开始上门求合作
- 任正非又有大招!全球第一颗云原生卫星入轨,为何出自华为之手?
- 荣耀手表|支持五大卫星定位!荣耀手表GS 3开售:1299元起
- 卫星|热点前瞻:鸿蒙概念+卫星互联网+智慧医疗+车联网