【ES】笔记-let 声明及其特性

let 声明及其特性

  1. 声明变量
    • 变量赋值、也可以批量赋值
        let a;let b,c,d;let e=100;let f=521,g='iloveyou',h=[];
  1. 变量不能重复声明
         let star='罗志祥';let star='小猪';

在这里插入图片描述

  1. 块级作用域,let声明的变量只在块级作用域内有效
        {let girl='周杨青';}console.log(girl)

注意:在 if else while for 中使用let都是块级作用域
在这里插入图片描述

  1. 不存在变量提升

使用var(存在变量提升)

	console.log(girl);var  girl = "小刘同学"// 打印结果:undefined

使用let(不存在变量提升)

 	console.log(girl);let  girl = "小刘同学"// 报错:ncaught ReferenceError: Cannot access 'girl' 

注:变量提升就是在变量创建之前使用(比如输出:输出的是默认值),let不存在,var存在

  1. 不影响作用域链
        {let school='德仔同学';function fn(){console.log(school);}fn();// 打印结果:小刘同学}

注:作用域链是代码块内有代码块,跟常规编程语言一样,上级代码块中的局部变量下级可用

  1. let使用案例:
    html代码
   <style>.item {width: 100px;height: 50px;border: solid 1px rgb(42, 156, 156);float: left;margin-right: 10px;}</style><body><div class="container"><h2 class="page-header">let案例:点击div更改颜色</h2><div class="item"></div><div class="item"></div><div class="item"></div></div></body>

JavaScript代码

// 获取class名为item的元素
let items = document.querySelectorAll(".item")// 遍历绑定元素
for(let i=0;i<items.length;i++){items[i].onclick = function(){// 修改当前元素的背景颜色// 写法一// this.style.background = 'pink'// 写法二:items[i].style.background = "pink"}
}

写法二注意事件
在for循环是使用的 i 必须要使用let声明
如果使用var就会报错(原因:var是全局变量)
经过循环之后i的值会变成3,items[i]就会下表越界
let是局部变量
我们要知道点击的时候 i 是那个值

   //使用var相当于是:{ var i = 0; }{ var i = 1; }{ var i = 2; }{ var i = 3; }// 下面的声明会将上面的覆盖掉,所以点击事件每次找到的都是3// 而使用let使用var相当于是:{ let i = 0; }{ let i = 1; }{ let i = 2; }{ let i = 3; }// 由于let声明的是局部变量,每一个保持着原来的值// 点击事件调用的时候拿到的是对应的 i

总结:let声明的变量更加规范合理,尽量使用let来声明和使用变量

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/24771.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis可视化工具

Redis可视化工具 1、RedisInsight 下载地址&#xff1a;https://redis.com/redis-enterprise/redis-insight/ 双击软件进行安装&#xff0c;安装完后弹出如下界面&#xff1a; 安装完成后在主界面选择添加Redis数据库&#xff1b; 选择手动添加数据库&#xff0c;输入Redis…

【统计学精要】:使用 Python 实现的统计检验— 1/10

一、介绍 欢迎来到“掌握 Python 统计测试&#xff1a;综合指南”&#xff0c;它将介绍本手册中您需要熟悉使用 Python 的所有基本统计测试和分析方法。本文将为您提供统计测试及其应用的全面介绍&#xff0c;无论您是新手还是经验丰富的数据科学家。 使用来自现实世界的实际示…

HarmonyOS 开发基础(五)对用户名做点啥

一、实现用户名检验 条件渲染 、生命周期 1.规定用户名长度 2.限定使用的数字及字母&#xff08;涉及正则表达&#xff09; // 导出方式直接从文件夹 import MyInput from "../common/commons/myInput" Entry Component /* 组件可以基于struct实现&#xff0c;组件…

驱动开发(中断)

头文件&#xff1a; #ifndef __LED_H__ #define __LED_H__#define PHY_LED1_MODER 0X50006000 #define PHY_LED1_ODR 0X50006014 #define PHY_LED1_RCC 0X50000A28#define PHY_LED2_MODER 0X50007000 #define PHY_LED2_ODR 0X50007014 #define PHY_LED2_RCC 0X50000A28#def…

在word的文本框内使用Endnote引用文献,如何保证引文编号按照上下文排序

问题 如下图所示&#xff0c;我在word中插入了一个文本框&#xff08;为了插图&#xff09;&#xff0c;然后文本框内有引用&#xff0c;结果endnote自动将文本框内的引用优先排序&#xff0c;变成文献[1]了&#xff0c;而事实上应该是[31]。请问如何能让文本框内的排序也自动…

html5设置不缓存

<meta http-equiv"Cache-Control" content"no-cache, no-store, must-revalidate"> <meta http-equiv"Pragma" content"no-cache"> <meta http-equiv"Expires" content"0"> 使用meta元素的htt…

maven install命令:将包安装在本地仓库,供本地的其它工程或者模块依赖

说明 有时候&#xff0c;自己本地的maven工程依赖于本地的其它工程&#xff0c;或者manven工程中的一个模块依赖于另外的模块&#xff0c;可以执行maven的install命令&#xff0c;将被依赖的包安装在maven本地仓库。 示例 一个工程包含几个模块&#xff0c;模块之间存在依赖…

第一个maven项目(IDEA生成)

第一个maven项目&#xff08;IDEA生成&#xff09; 步骤1 配置Project SDK 步骤2 配置maven File->Settings搜索maven

JS中常用的数组拷贝技巧

我们都知道&#xff0c;数组也是属于对象&#xff0c;在JS中对象的存储方式则是引用的方式。我们想要拷贝一个数组&#xff0c;就不能只是变量之前的赋值拷贝&#xff0c;这样他们将共享同一个引用&#xff0c;而数组又具有可变性&#xff0c;所以无法将原数组和拷贝的数组的数…

风辞远的科技茶屋:来自未来的信号枪

很久之前&#xff0c;有位朋友问我&#xff0c;现在科技资讯这么发达了&#xff0c;你们还写啊写做什么呢&#xff1f; 我是这么看的。最终能够凝结为资讯的那个新闻点&#xff0c;其实是一系列事情最终得出的结果&#xff0c;而这个结果又会带来更多新的结果。其中这些“得出”…

[QT编程系列-35]:数据存储 - JSON格式配置数据的存储与通知

目录 1. QJsonObject 2 QJsonDocument 3 JSON本文格式 4. JSON示例 5. JASON配置文件示例 1. QJsonObject QJsonObject 是Qt的类之一&#xff0c;用于表示 JSON 对象。 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0…

kagNet:对常识推理的知识感知图网络 2023 AAAI 8.4+8.5

这里写目录标题 摘要介绍概述问题陈述推理流程 模式图基础概念识别模式图构造概念网通过寻找路径来匹配子图基于KG嵌入的路径修剪 知识感知图网络图卷积网络&#xff08;GCN&#xff09;关系路径编码分层注意机制 实验数据集和实验步骤比较方法KAGNET是实施细节性能比较和分析与…

Netty:ByteBuf的readerIndex和writerIndex

说明 io.netty.buffer.ByteBuf的数据索引从0开始。ByteBuf保存一个readerIndex和一个writerIndex变量。readerIndex用于读取操作&#xff0c;writerIndex用于写入操作。 0 < readerIndex < writerIndex < capacity < maxCapacity 示例 获取当前的readerIndex和w…

mysql授权

1.dml权限 mysql> grant select,delete,update,insert,create on netcentre.* to ln_sale% identified by password; Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> show grants for ln_sale%; ------------------------------------------------------------…

python GUI nicegui初识一(登录界面创建)

最近尝试了python的nicegui库&#xff0c;虽然可能也有一些不足&#xff0c;但个人感觉对于想要开发不过对ui设计感到很麻烦的人来说是很友好的了&#xff0c;毕竟nicegui可以利用TailwindCSS和Quasar进行ui开发&#xff0c;并且也支持定制自己的css样式。 这里记录一下自己利…

【Spring框架】Spring事务

目录 Spring中事务的实现编程式事务声明式事务Transactional 作⽤范围Transactional 参数说明注意事项Transactional ⼯作原理 MySQL 事务隔离级别Spring 事务隔离级别事务传播机制 Spring中事务的实现 Spring中事务操作分为两类&#xff1a; 1.编程式事务 2.声明式事务 编程…

Abaqus 中最常用的子程序有哪些 硕迪科技

在ABAQUS中&#xff0c;用户定义的子程序是一种重要的构件&#xff0c;可以将其插入到Abaqus分析中以增强该软件的功能和灵活性。这些子程序允许用户在分析过程中添加自定义材料模型、边界条件、初始化、加载等特定操作&#xff0c;以便更精准地模拟分析中的现象和现象。ABAQUS…

小白电脑装机(自用)

几个月前买了配件想自己装电脑&#xff0c;结果最后无法成功点亮&#xff0c;出现的问题是主板上的DebugLED黄灯常亮&#xff0c;即DRAM灯亮。对于微星主板的Debug灯&#xff0c;其含义这篇博文中有说明。 根据另一篇博文&#xff0c;有两种可能。 我这边曾将内存条和主板一块…

作为一名3年经验的java开发,对未来发展的思考

前言 已经好久没有更新博客了&#xff0c;一直在工作中忙碌&#xff0c;下班后不是学习就是运动&#xff0c;也逐渐忘记了自己以前有写博客的习惯&#xff0c;想起3年前刚毕业那会找工作的焦头烂额&#xff0c;每天发博客的目的是为了刺激自己能够更加努力上进&#xff0c;告诉…

MISRA 2012学习笔记(1)-Directives

文章目录 说明Directives2 编译与构建Dir 2.1 3 需求可追溯性Dir 3.1 4 代码设计Dir 4.1Dir 4.2Dir 4.3Dir 4.4Dir 4.5Dir 4.6Dir 4.7Dir 4.8Dir 4.9Dir 4.10Dir 4.11Dir 4.12Dir 4.13 说明 以下等级一般分为三种&#xff0c;建议&#xff0c;必要&#xff0c;强制 建议&#…