es6中let和const

ES6 let和const命令 ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。上面代码在代码块之中,分别用let和var声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值。这表明,let声明的变量只在它所在的代码块有效。for循环的计数器,就很合适使用let命令。上面代码中,计数器i只在for循环体内有效,在循环体外引用就会报错。下面的代码如果使用var,最后输出的是10。上面代码中,变量i是var。 阅读详情

一. let

相当于var,但所声明的变量只在let命令所在的代码块中有限

1. 变量不提升
  • var 会进行变量提升(即没有声明就可以使用)
<script>
    console.log(a); // undefined
    var a = 10;
</script>
  • let 如果在没有声明的时候使用,则系统会报错。
<script>
    console.log(a); // 报错
    let a = 10;
</script>
2.代码块有效
  • let 只在代码块有效
  • var 在全局有效
3. 不允许重复声明
  • let 不允许在相同作用域中重复声明
{
    let a = 10;
    console.log(a); //10
 }
{
	let a = 10;
    console.log(a);  //报错
    let a = 20;
    console.log(a);  //报错
}
4. 块级作用域
  • 外层不受内层代码块影响
  • 内层可以定义外层的同名变量
  • 允许块级作用域任意嵌套
  • 代替了立即执行函数的表达式
  • 可在块级作用域声明函数,外层不可引用。

二. const

1. 声明一个只读的常量,在声明时必须赋值,且该值不可改变。

    <script>
        const a;
        console.log(a); //报错
    </script>
    <script>
        const a;
        a = 10;
        console.log(a); // 报错
    </script>
    <script>
       const a = 10;
        console.log(a); //10
        a = 20;
        console.log(a); //报错(不能给常量继续赋值)
    </script>

2. 不提升,不可重复声明

    <script>
       console.log(a); // 报错
        const a = 10;
    </script>
    
    <script>
       const a = 10;
       console.log(a);  // 报错
       const a = 20;
       console.log(a);  //报错
    </script>

3. 注意: const 声明常量,但是如果是引用型的,即只是确定他的内存地址,里面可以修改,例如:数组,对象等

	<script>
        const a = [1,2,3,4];
        console.log(a);
        a.push(5);
        console.log(a);
    </script>

在这里插入图片描述

    <script>
	    const obj = {
	        a: 10,
	        b: 50
	    }
	    console.log(obj);
	    obj.a = 123;
	    console.log(obj);
    </script>

在这里插入图片描述

EtherCAT主站开发(学习笔记一) 摘要:本文介绍了基于STM32H7的EtherCAT主站开发探索。EtherCAT是一种高实时性工业以太网协议,具有低延迟、高带宽利用率等特点。文章详细解析了EtherCAT的协议架构、帧结构和工作原理,重点阐述了PDO数据传输过程及主从站通信机制。同时介绍了CoE、FoE等应用层协议扩展。作者将基于SOEM开源协议栈进行开发,为后续实际应用中的伺服电机控制奠定基础。 阅读详情

相关推荐

恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境

恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境 注:本次实验主要是《恶意代码分析实战》一书中进入动态恶意代码分析篇章的开始,主要通过Apatedns以及Inetsim来模拟为恶意代码提供其需要的网络环境,本次实验以Lab01-03.exe为例。 一、实验环境及工具。 Vmware虚拟机:win10(win7)、kali 主要工具:Apatedns、Inetsim 二、工具的安装下载 1、Apatedns:需安装至windows虚拟机客户端(win10,win7均可) 下载地址:http

妙蛙种子吃了都会妙妙秒的妙脆角的博客 7936

ES6基础:let和const

变量声明是我们在学习一门语言时,最先了解的部分之一。不要忽略它,我们一起来看看ES6中新增的两种变量声明命令吧~

余光的博客 5130

MT6768平台Sensor Bring Up全流程实战:从驱动添加到问题排查(附避坑指南)

本文详细介绍了联发科MT6768平台Sensor Bring Up的全流程实战指南,从驱动添加、硬件配置到问题排查,提供了全面的避坑建议。内容涵盖环境准备、驱动文件集成、硬件接口配置、编译系统适配以及常见问题解决方案,帮助开发者高效完成传感器集成与调试工作。

weixin_30374009的博客 416

es6的使用之let和const

ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1 上面代码在代码块之中,分别用let和var声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的变量报错,var...

mlonly的博客 5649

SAP公司间采购后台配置及前台操作详解

公司间采购后台配置及前台操作详解 SAP 实施中公司间交易几乎每个项目都会有此业务需求,比如内地很多公司都会在香港设置贸易型子公司。通过香港公司接单,然后转内地公司生产,或内地公司通过香港公司采购进口原材料,这些业务必然会涉及到公司间交易,下面我将详细说明下SAP是如何实现这种业务场景的,供大家参考。 配置前必须前台先创建公司间供应商主数据和客户主数据 1. 创建相应的客户主数据 功能说明 公司间...

weixin_40672823的博客 1万+

信息学奥赛一本通高手训练1680:序列

题目 代码 #include<cstdio> #include<iostream> #include<cmath> #define LL long long using namespace std; const LL N = 1400000+7; const LL mod = 1e9+7; int n, t; LL pos[N], sum[N], ans[N]; struct node{ LL ll, rr; }a[N]; int main(){ p

qingfeixueyue的博客 468

ES6 中的 let 和 const

目录01.let 和 const 都是块级作用域。02.let 和 const声明不存在变量提升,只能先声明再使用,否则会报错。03.ES6中不允许重复声明,ES5允许04.const 声明的是一个只读常量,再声明时就需要赋值。05.let 与const 声明赋值问题06. const有关知识07.注意点:08.案例在 ES6 中通常用let 和 const 来声明,let 表示变量、const 表示常量,ES5用var声明 特点:以{ }代码块作为作用域范围 ,只能在代码块里面使用,而var声明的变量全局

weixin_47075145的博客 1178

matlab 求解多项式的根 四种方法

matlab 求解多项式的根 四种方法 方法一 %多项式求根函数roots p=[1,-3,1];%建立多项式系数向量p x=roots(p)%求多项式的根 x=-5:0.1:5;%步长为0.1 y1=x.*x-3*x+1;%构建一个函数 y2=zeros(size(x));%产生一个与x同大小的零向量 plot(x,y1,x,y2); 方法二 %利用函数fzero f=@(x)x*x-3*x+1; x1=fzero(f,0.5) x2=fzero(f,2.5) 方法三 %利用f

weixin_57038822的博客 1万+

ES6中let和const

ES6中引入了let和const两个关键字,平时也就是知道let有块级作用域,const初始化之后不能更改,没有做过深究。今天测试demo时突然发现一个现象,一时没有想通,故特意记录,涨涨知识。问题如下: 问题说明 从上面可以看到我只是很简单地在JS中打印了let和var定义的变量,但是结果却跟我想的不一样,为什么let定义的变量在用this获取时会返回undefined呢?这个环境this不是都指向window吗?带着这个疑问我查找了一些资料,最终在阮一峰老师的文档下面找到了答案。在ES6中,用let命

weixin_44024394的博客 488

立创开源桌面激光雕刻机DIY全解析:从悬臂结构、Arduino主控到Marlin固件

本文详细解析了基于立创开源平台的桌面激光雕刻机DIY全过程。重点介绍了悬臂式机械结构的设计与优化,阐述了采用Arduino Mega 2560主控与RAMPS 1.4扩展板的经典控制方案,并深入讲解了Marlin固件的关键配置步骤,包括电机步数计算与激光功能启用,为创客和电子爱好者提供了一套完整的从硬件搭建到软件调试的实战指南。

weixin_42510201的博客 386

JMeter 中实现 100 个用户在 3 秒内并发登录

通过以上配置,你可以在 JMeter 中实现 100 个用户在 3 秒内并发登录

南开大学 | 10 年 + 软件研发与测试实战 | 现任企业质控负责人 | 专注端到端交付质量 1680

ES6——let和const命令

文章目录前序let和const命令let应用循环定义ilet声明暂时性死区const声明变量特性的本质解构赋值数组的解构赋值对象的解构赋值 前序 博主前几天看到了有朋友写出很棒的博客,很是心动哇,所以今天决定多多更新,更好地巩固自己的知识同时更有成就感,今天写的这篇文章呢,是自学ES6看完相关视频,现在想过一遍《ES6标准入门》这本书,看看有什么遗漏点和不足,那么现在就开始吧~ let和const命令 let应用循环定义i 这里就可以体现let声明的优势啦 看看下面两个循环分别应该输出什么 想想为什么结

qq_52784066的博客 465

生成模型实战 | ProGAN详解与实现

Progressive GAN (ProGAN) 是一种通过渐进式增长网络结构来生成高分辨率、高保真图像的技术。传统 GAN 难以直接生成超过 256x256 分辨率的图像,而 ProGAN 创新性地从低分辨率开始训练生成器和判别器,逐步添加网络层以提高分辨率,直至达到1024x1024。该方法结合了像素归一化、小批次统计信息和均衡化学习率等关键技术,并使用 WGAN-GP 损失函数确保训练稳定性。ProGAN 是首个能生成1024x1024高保真人脸图像的模型,但其训练耗时较长,且对计算资源要求较高。

盼小辉丶的博客 1435

ES6中的let和const详解

大家有可能想let和const有什么可以特意去了解的呢?它们不就是ES6新出的二种变量命名方式,确实如果,但是里面的坑你们还是需要了解的,很多人认为let是可以代替var的,嘿嘿,如果你们这样理解就大错特错了 let let用来声明变量,并且会在当前作用域形成代码块 所谓代码块其实就是 { let a=1 } {}就是一个代码块. 使用let声明的变量,只能在当前代码块中访问,类似函数作...

白天不懂夜的黑 2895

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ES6~ES14 之 let和const

let:适用于需要在不同作用域内重复赋值的场景。尤其在循环和异步操作中,它能够有效避免作用域污染和变量提升问题。const:适用于声明不会重新赋值的变量,尤其在定义常量、数组或对象引用时。它能有效保护数据不被意外修改。通过合理使用let和const,可以写出更易于维护、健壮且无副作用的 JavaScript 代码。

g18642885147的博客 647

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ES6 let和const

前提说明 var a = 1; let b = 2; const c = 3; 上面的代码中,每一行代码都可以理解为是对一个变量的初始化,而在我的理解中,一个变量的初始化过程可以分为两个步骤,第一步是声明变量,第二步是给声明好的变量进行赋值。 其中声明变量的步骤就是解释器对代码中 var a let b const c 的执行。而给声明的变量进行赋值就是解释器对 = 运算符的执行,将 ...

sinat_30552885的博客 1723

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

let和const命令(ES6)

读阮一峰ES6大全所做笔记,原文链接:https://es6.ruanyifeng.com,侵权立删。 let和const命令(ES6)let命令一、基本用法二、用在for循环三、不存在变量提升四、“暂时性死区”(temporal dead zone,简称 TDZ)。五、不允许重复声明块级作用域一、为什么需要块级作用域二、ES6的块级作用域三、块级作用域和函数声明const命令一、基本用法二、本质三、ES6声明变量的6种方法顶层对象的属性globalthis对象 let命令 一、基本用法 let命令,用来声

zy_zxcvbnm的博客 1049

ES6学习之- let 和 const 命令

仅做个人学习交流 参考文章:http://es6.ruanyifeng.com 前提: let 和 const都是 ES6 中声明变量的方法。ES6中声明变量的方法有6种:var 、function 、let、const 、class 、import 。 let和 const声明的变量都是局部变量。只在块级区域生效。 块级区域: 1、“{......}”符号进...

没办法喽 的博客 203

ES6之let和const的区别

ES6 声明变量的六种方法 ES5 只有两种声明变量的方法:var命令和function命令。ES6 除了添加let和const命令,后面章节还会提到,另外两种声明变量的方法:import命令和class命令。所以,ES6 一共有 6 种声明变量的方法。 let和const的相同点: ① 只在声明所在的块级作用域内有效。 ② 不提升,同时存在暂时性死区,只能在声明的位置后面使用。 ③ 不可重复声明。 let和const的不同点: ① let声明的变量可以改变,值和类型都可以改变;const声明的常量

qq_36528523的博客 1118

ES6 let和 const

2.

weixin_48294709的博客 284

ES6中let和const关键字的特性及应用

对于复合类型的数据(主要是对象和数组),const只能保证变量指向的内存地址不变,即变量名总是指向另一个固定的地址,但数据结构本身是可变的。let声明的变量只在其所在的块级作用域内有效,避免变量暴露成全局作用域,影响其他代码。在代码块内,使用let命令声明变量之前,该变量都是不可用的,这在语法上称为 “暂时性死区”。// 输出'张老师',因为var声明的变量是函数作用域或全局作用域。// 报错,初始化前不能访问a,在同一个作用域中,不可以访问未声明的变量再定义。// let star = '余老师';

奋斗的小前端 1319

ES6之let和const命令

ES6之let和const命令 var、let、const对比 命名 变量提升 暂时性死区 重复声明 改变 var true true true let true true const true let命令 基本用法 ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 推荐适用范围 块级作用域...

TSORA-C的博客 1300

ES6中的let和const常见特性概述

前言 本文仅对开发中常见的情况进行描述。 更为全面的描述,请参考阮一峰出版的《ECMAScript 6 入门》,第二章 let 和 const 命令 全文也参考了这本书。感谢阮一峰大神的无私共享。 let let用来声明一个变量。其主要特点有:变量不提升、只在声明的代码块里有效、不能重复声明、变量存在暂时性死区。 一下分别对上述3中情况分别讨论: // 变量不提升 // 例1: let a = ...

qq_45743738的博客 915

ES6中的 let 和 const

ES6中的 let命令 和 const命令详解

webchang的博客 328

ES6 中 let、var 和 const 的区别详解

在JavaScript的发展历程中,ES6(ECMAScript 2015)的发布标志着语言的重大进步。ES6引入了许多新特性,其中最重要的变化之一就是对变量声明关键字的改进。

Cwayhome的博客 1010
上一篇: 前端性能优化之理解JavaScript的重排和重绘
下一篇: 构造函数,原型对象和实例对象的区别与联系
apple_2021
博客等级 码龄8年 1529粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值