js中声明变量的关键字(const,let,var)

const

特点:

  • const不允许在同一作用域重复声明,块级作用域
  • 暂时性死区,在声明之前,该变量是不可用的
  • const声明的是一个只读变量,声明之后不能改变其值,一旦声明必须初始化
  • 但是const定义的对象属性是可以修改的

块作用域由{}包括,if语句和for语句里面的{}也输入块作用域

对象是引用类型的,const定义的对象是保存指向对象的指针,这里的“不变”是指对象的指针不变,而修改对象中的属性不会使对对象的指针发生变化。

    const a=3{const a=1console.log(a)//1}{//a是对象,可以修改对象的属性const a={name: 1}console.log(a)//{ name: '1' }a.name=2console.log(a)//{ name: '2' }}console.log(a);//3

var

  • 变量提升,声明的变了会自动提升到他所在作用域的顶部
function fun() {console.log(variable); var variable = "hello";
}
fun(); // 结果是 undefined

因为上面的代码等同于:

function fun() {var variable;console.log(variable); variable = "hello";
}
fun(); // 结果是 undefined
  •  var可以重复声明同一个变量
  • 在使用 var 的时候,最常见的问题就是对迭代变量的奇特声明和修改
for (var i = 0; i < 5; ++i) { setTimeout(() => console.log(i), 0) 
} 
// 你可能以为会输出 0、1、2、3、4 
// 实际上会输出 5、5、5、5、5

let

  • 块级作用域 
  • 不允许在同一个块作用域中重复声明变量
  • 暂时性死区

let和var的区别:

for (var i = 0; i < 5; ++i) { // 循环逻辑 
} 
console.log(i); // 5for (let j = 0; j < 5; ++j) { // 循环逻辑
} 
console.log(j); // ReferenceError: j 没有定义

声明风格

尽量不使用var
const优先,let次之

使用const声明可以让浏览器运行时强制保持变量不变,也可以让静态代码提前发现不合格的声明。

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

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

相关文章

Linux 局域网传输工具LANDrop安装

Linux 局域网传输工具LANDrop安装 &#x1f959;下载&#x1f32d;解压&#x1f96a;运行 &#x1f959;下载 官网下载 或网盘 &#x1f32d;解压 使用以下命令解压获得squashfs-root文件夹 ./LANDrop-latest-linux.AppImage --appimage-extract&#x1f96a;运行 进入squ…

flutter 文本不随系统设置而改变大小[最全的整理]

文本不随系统设置而改变大小[三] 前言方案十三&#xff1a;使用Flexible方案十四&#xff1a;使用MediaQueryData的textScaleFactor属性方案十五&#xff1a;使用FractionallySizedBox方案十六&#xff1a;使用自定义文本样式方案十七&#xff1a;使用自定义绘制&#xff08;Cu…

#sftp命令传输及基础问题分析

文章目录 一、sftp命令简介二、sftp登录连接远程服务器 三、基础操作命令上传文件下载文件 四、其他操作命令五、登录报错处理 解决ssh connect to host port 22 Connection refused1.检查SSH服务器正在监听端口22&#xff0c;默认情况下&#xff0c;SSH使用端口22进行通信。如…

DS二叉树--赫夫曼树解码/最优二叉树【数据结构】

DS二叉树–赫夫曼树解码 题目描述 已知赫夫曼编码算法和程序&#xff0c;在此基础上进行赫夫曼解码 可以增加一个函数&#xff1a;int Decode(const string codestr, char txtstr[]);//输入编码串codestr&#xff0c;输出解码串txtstr 该方法如果解码成功则返回1&#xff0c…

『heqingchun-Ubuntu系统+x86架构+配置编译安装使用yolov5-6.0+带有TensorRT硬件加速+封装动态库+C++部署+Qt』

Ubuntu系统+x86架构+配置编译安装使用yolov5-6.0+带有TensorRT硬件加速+封装动态库+C++部署+Qt 学习本篇文章后你会:部署yolov5-6.0版本、模型转换(.pt->.wts->.engine)、将yolov5-6.0封装动态库并得到深度学习推理结果,最后在qt或其他项目中调用使用。 一、准备文…

Doris_Doris导入常见问题

Doris数据导入错误 &#xff1a;the length of input is too larger than schema 可能原因&#xff1a;varchar长度设置过短 Doris表字段乱序 导入palo表中的csv本身无schema信息&#xff0c;csv与palo表字段顺序必须一致&#xff0c;否则会错乱 Doris数据文件中字段比表字段…

探秘:性能测试中最常见的陷阱与解决方案!

概述一下性能测试流程&#xff1f; 1.分析性能需求。挑选用户使用最频繁的场景来测试。确定性能指标&#xff0c;比如&#xff1a;事务通过率为100%&#xff0c;TOP99%是5秒&#xff0c;最大并发用户为1000人&#xff0c;CPU和内存的使用率在70%以下2.制定性能测试计划&#x…

如何解决中小制造业企业信息化难题?

中小企的信息化&#xff0c;难&#xff01; 一、中小制造业企业信息化困难的原因主要有以下几点&#xff1a; 资金限制&#xff1a;中小制造业企业相对于大型企业来说资金有限&#xff0c;无法投入大量资金进行信息化建设。技术水平不足&#xff1a;中小制造业企业缺乏专业的…

C语言文件操作 | 文件分类、文件打开与关闭、文件的读写、文件状态、文件删除与重命名、文件缓冲区

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

Leetcode—828.统计子串中的唯一字符【困难】

2023每日刷题&#xff08;四十一&#xff09; Leetcode—828.统计子串中的唯一字符 算法思想 枚举所有种类字母在s中出现的位置&#xff0c;分别统计只包含这个字母不包含该类字母中其他字母的子串个数 实现代码 int uniqueLetterString(char* s) {int len strlen(s);cha…

四川天蝶电子商务有限公司真实可靠吗?

随着数字经济的不断发展&#xff0c;抖音电商服务日益成为企业拓展销售渠道、提升品牌影响力的关键一环。在这样的大背景下&#xff0c;四川天蝶电子商务有限公司凭借其专业的服务能力和创新的技术手段&#xff0c;迅速崛起为抖音电商服务领域的领军企业。 四川天蝶电子商务有限…

【解决方案】基于边缘计算技术的安科瑞综合管廊能效管理平台

平台背景 综合管廊一般是建于城市地下用于容纳两类及以上城市工程管线的构筑物及附属设施&#xff0c;将电力、自来水、热力、煤气、电信、网络等市政公用管线根据规划要求集中敷设在同一个构建物内&#xff0c;实施统一设计、施工、管理的市政公用隧道空间&#xff0c;并且还…

NAS层协议学习(三)

消息结构 每个NAS消息包含一个协议鉴别符和一个消息标识。协议鉴别符是一个 4 位值&#xff0c;指示正在使用的协议&#xff0c;即对于 EPS NAS 消息是 EMM 或 ESM。消息标识指示发送的特定消息。 EMM 消息还包含一个安全标头&#xff0c;指示消息是否受到完整性保护和/或加密…

DS图—图的最短路径/Dijkstra算法【数据结构】

DS图—图的最短路径/Dijkstra算法【数据结构】 题目描述 给出一个图的邻接矩阵&#xff0c;输入顶点v&#xff0c;用迪杰斯特拉算法求顶点v到其它顶点的最短路径。 输入 第一行输入t&#xff0c;表示有t个测试实例 第二行输入顶点数n和n个顶点信息 第三行起&#xff0c;每行…

设计模式应用之java代码实现(一)

文章目录 前言外观模式享元模式职责链模式命令模式命令模式2命令模式3备忘录模式迭代器模式观察者模式状态模式 前言 本篇博客截取的是**《C#设计模式&#xff08;第2版&#xff09;》这本书课后习题里面的各个设计模式的典型习题并完成java代码实现&#xff0c;每个代码实现都…

【链接MySQL】教你用VBA链接MySQL数据库

hi&#xff0c;大家好呀&#xff01; 之前呢&#xff0c;给大家分享过一个自制链接表管理器的文章&#xff0c;文章中有链接SQL Server数据库的代码&#xff0c;大家对这一段代码比较有兴趣&#xff0c;既然大家有兴趣&#xff0c;那我们今天就来讲一下链接数据库的代码。 这…

nginx配置全解析

#用于指定 Nginx 进程运行的用户和用户组&#xff0c;root 用户具有系统的最高权限&#xff08;潜在的安全漏洞&#xff09;可以用use nginx>非特权用户&#xff08;通常是 nginx&#xff09;的身份运行 user root; #Nginx服务器能够同时处理的连接数量(设置服务器cpu核数)…

抽象工厂模式-C语言实现

说明&#xff1a; 均由 chatgpt生成&#xff0c;实例可以看出无法运行&#xff0c;仅供参考~ 抽象工厂模式&#xff1a; 代码实现&#xff1a; #include <stdio.h>// 定义抽象产品接口 typedef struct {void (*operation)(); } AbstractProductA;typedef struct {voi…

智慧工地管理系统加快推进工程建设项目全生命周期数字化

智慧工地管系统是一种利用人工智能和物联网技术来监测和管理建筑工地的系统。它可以通过感知设备、数据处理和分析、智能控制等技术手段&#xff0c;实现对工地施工、设备状态、人员安全等方面的实时监控和管理。 智慧工地以物联网、移动互联网技术为基础&#xff0c;充分应用大…

WPF面试题:WPF绘图技术介绍

作者:令狐掌门 技术交流QQ群:675120140 csdn博客:https://mingshiqiang.blog.csdn.net/ 文章目录 WPF绘图基本用法绘制直线在XAML中绘制直线在C#代码中绘制直线使用Path绘制直线注意矩形绘制在XAML中绘制矩形在C#代码中绘制矩形设置矩形的位置使用圆角矩形画刷1. SolidColor…