关于var、let、const相同与不同

news2024/12/23 20:08:54

相同:var、let、const都可以声明变量

var milliaA = "milliaA"
let milliaB = "milliaB"
const milliaC = "milliaC"

console.log(milliaA,milliaB,milliaC)

 不同:

一、变量提升,var有提升,let、const没有提升

console.log(str);
var str = 'millia';

console.log(str);

str是console.log后定义的,因为var存在变量提升,所以当console.log输出str时,会去找有没有定义str,因赋值的顺序在console.log后面,所以console.log输出的结果显示undefined然后是赋值

console.log(str)
let str = "millia"

  

console.log(text)
const text = "millia"

 let、const不存在变量提升,所以如果没有在console.log输出前对str、text进行定义,就会报错。

 二、相同变量声明覆盖,var可以覆盖,let、const不可以

var millia = "hello";
var millia = "everyday";
console.log(millia);

 var定义同名变量时,后面所定义的内容会覆盖前面的。

let millia = "hello";
let millia = "everyday";
console.log(millia);

  

const millia = "hello";
const millia = "everyday";
console.log(millia);

 三、变量常量,var、let声明变量,const声明常量

//var 声明
var milliaA = "hello";
milliaA = "millia";
console.log(milliaA);

//let 声明
let milliaB = "hello";
milliaB = "millia";
console.log(milliaB);

//const 声明
const milliaC = "hello";
milliaC = "millia";
console.log(milliaC);

 var、let声明变量,可重新赋值,const声明常量,因常量不能修改所以报错。

//const 数组
const arr = [1, 2, 3];
arr[0] = 'millia';
console.log(arr);

//const 对象
const obj = {
  a: 4
}
obj.a = "millia";
console.log(obj);

//const 直接修改arr或obj
arr = "millia";
console.log(arr);

obj = "millia";
console.log(obj);

 

注意:const声明常量,但是常量所包含的值是可以修改的。

四、作用域, var声明的变量作用域全局,let、const声明的变量有自身的作用域

//var 声明
if (true) {
  var milliaA = "milliaA";
}
console.log(milliaA);

//let 声明
if (true) {
  let milliaB = "milliaB";
}
console.log(milliaB);

//const 声明
if (true) {
  const milliaC = "milliaC";
}
console.log(milliaC);

 

函数内var声明的变量,在函数外也可以调用,但let、const声明的变量,只能在函数内使用,函数外不能调用

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

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

相关文章

初识 Redis - 分布式,内存数据存储,缓存

目录 1. 什么是 Redis 1.1 Redis 内存数据存储 1.2 Redis 用作数据库 1.3 Redis 用作缓存 (cache) 1.4 用作消息中间件 1. 什么是 Redis The open source , in-memory data store used by millions of developers as a database, cache, streaming engine, and message br…

使用 Elastic 时间序列数据流探索 Nginx 指标

作者:Lalit Satapathy Elasticsearch 最近发布了用于指标的时间序列数据流。 这不仅为 Elastic Observability 提供了更好的指标支持,而且还有助于降低存储成本。 我们在之前的博客中讨论过这个问题。 在本博客中,我们通过回顾什么是时间序列…

rar文件怎么打开?简单4步,轻松解决!

什么是rar文件? Rar文件是一种专用的文件格式,比较常用于归档打包和数据的压缩,我们可以将原有的文件数据压缩后保存为rar文件格式。其常用于将文件夹或者大型文件压缩为单个文件,以便更方便地传输和存储。 在日常的工作中&…

jmeter 终端命令执行jmx文件 生成jtl日志文件

终端命令执行jmx文件 生成jtl日志文件, 步骤如下: 步骤1:终端进入jmx文件目录 步骤2:执行命令:jmeter -n -t ****.jmx -l ****.jtl -n 以cli模式(命令行运行模式)运行jmeter -t 需要运行的…

怎么快速敲代码,最简单的代敲代码工具,codeWhisperer走起

题记:谁不想提升工作效率,谁不想有人帮你敲代码,来吧,上菜; 第一步:下载并安装AWS Toolkit(下载有点慢,请耐心等待); 第二步:点击start。 第三步…

【论文阅读笔记】Attack-Resistant Federated Learning with Residual-based Reweighting

个人阅读笔记,如有错误欢迎指出 Arxiv 2019 [1912.11464] Attack-Resistant Federated Learning with Residual-based Reweighting (arxiv.org) 问题: 联邦学习容易受到后门攻击 创新: 提出一种基于残差的重新加权聚合算法 聚合算法…

windows系统下jdk8和jdk17灵活切换

安装了jdk8和jdk17后环境变量path中会多出2条 C:\Program Files\Common Files\Oracle\Java\javapath C:\Program Files (x86)\Common Files\Oracle\Java\javapath 将它们下移到最下面,点击确认 这样做的原因是为了JAVA_HOME的优先级最高,达到更换JAVA…

分布式应用之监控Zabbix

分布式应用之监控Zabbix 一、什么是Zabbix? ●zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 ●zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存…

深入Vite核心编译能力

我们知道,Vite 在开发阶段实现了一个按需加载的服务器,每一个文件请求进来都会经历一系列的编译流程,然后 Vite 会将编译结果响应给浏览器。而在生产环境下,Vite 同样会执行一系列编译过程,将编译结果交给 Rollup 进行…

CP AUTOSAR中的CanTrcv

环境 CanTrcv驱动实际上是要实现CanIf指出的接口,包括5个API函数 CanTrcv_SetOpMode CanTrcv_GetOpMode CanTrcv_GetBusWuReason CanTrcv_SetWakeupMode CanTrcv_CheckWakeup CanIf接口会有对应的接口回调CanTrcv的API,包括5个A…

CODESYS 联合体变量(Union)

联合Union也是一种特殊的自定义类型这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体),联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的…

Drools用户手册翻译——第三章 构建,部署,应用和运行(三)运行

主要对于运行相关内容的介绍,又多了很多新的概念,还没有着手去尝试,感觉很多内容确实有用,等我把这一章结束时候,实际跑一跑代码感受一下。 甩锅声明:本人英语一般,翻译只是为了做个笔记&#…

在Vue种使用Vant框架

第一步:打开Vant框架地址 https://vant-contrib.gitee.io/vant/v2/#/zh-CN/home 第二步: 安装 第三步:引入(我这里使用的是按需导入) 执行命令: npm i babel-plugin-import -D ①:src下创建个…

pycharm 配置github

文章目录 环境必备操作步骤1.在pycharm中配置git和github2.获取ssh密钥3.将本地项目与github仓库连接4.同步本地项目到github 相关问题参考文章 环境必备 pycharm 2020.1:集成开发环境,需要安装并配置环境 PyCharm 开发环境搭建指南:安装、配…

【RISC-V】寄存器及 PCS(过程调用标准)

文章目录 寄存器与别名函数入栈示例代码作用为什么需要保存 函数出栈示例代码作用为什么需要恢复 浮点寄存器的保存示例代码作用 浮点寄存器的恢复示例代码作用 寄存器与别名 Caller(调用者)指的是调用(或执行)一个函数的代码段或…

Pandas 和 CSV文件读取导出小纪

要从CSV文件中访问数据,我们需要一个函数read_csv(),它以数据帧的形式检索数据。 read_csv() 语法: pd.read_csv(filepath_or_buffer, sep’ ,’ , header’infer’, index_colNone, usecolsNone, engineNone, skiprowsNone, nrowsNone) 参…

vue启动编译时报错:134(内存溢出)

项目环境:win7 vue2 webpack2 最近开发过程中项目莫名其妙就起不来了,报错大致如下: 经过一番搜索,尝试了多种方法都不行,比如: 1. npm install increase-memory-limit npm install cross-env 在package.json中添加…

首个!AI开发者创作激励计划开启,有成长、有收入

各种视频网站都有什么创作激励!那什么时候有专属于AI开发者的创作激励?好!那AI开发者的福利来了!!既能潜心进行模型开发,又能提升技术能力,还能领一份创作金!!飞桨AI Stu…

Codeforces Round 882 (Div. 2)(视频讲解A——D)

[TOC](Codeforces Round 882 (Div. 2)&#xff08;视频讲解A——D&#xff09;) 讲解在B站&#xff1a;Codeforces Round 882 (Div. 2)&#xff08;视频讲解A——D&#xff09; A The Man who became a God #include<bits/stdc.h> #define endl \n #define INF 0x3f3…