46.声明类关键字 var new funcion let const

目录

1 var

2  new

3  function

4  let

4.1  let不能在同一作用域下重复声明

4.2  let无法进行变量提升

4.3  var的变量会跑出当前作用域,但是let不会

4.4  let与var的循环定时器问题

5  const

5.1  简单值

5.2  复杂值


1 var

使用var只能让函数内部使用它,而无法网页中所有部分都使用它,作用域问题可以看一下这个 12.作用域_Suyuoa的博客-CSDN博客

2  new

创建数组,对象

数组的使用方式可以看一下这个 10. 数组 Array_Suyuoa的博客-CSDN博客

对象的使用方式可以看一下这个 14. 对象_Suyuoa的博客-CSDN博客

3  function

function是声明函数用的

函数的具体使用方法可以看一下这个 11. 函数_Suyuoa的博客-CSDN博客

4  let

let也是定义变量用了,与var有下面这些区别

4.1  let不能在同一作用域下重复声明

作用域问题可以看一下这个 12.作用域_Suyuoa的博客-CSDN博客

我们先看var

正常

再看let

发现不行,告诉你变量已经被声明过了

使用var也不行,使用let后 在同一作用域内 不许再次声明该变量

但是你不加关键字直接定义是可以的

4.2  let无法进行变量提升

变量提升有问题可以看一下这个 13.预解析_Suyuoa的博客-CSDN博客

我们先看var

发现没有报错

再看let

发现报错了

4.3  var的变量会跑出当前作用域,但是let不会

先看var

再看let

4.4  let与var的循环定时器问题

下面这段代码的执行结果是 1秒钟后打印5个5

我可以利用立即执行函数使其 在1s后打印1到5

如果单说功能的话,想到用上面那种方法的人不多,正常来讲想到下面这种方法的比较多

但其实你也可以这样写

这个let是最难理解的,我们可以理解为这个let可以作用于块作用域内的异步任务,但是var不行

5  const

5.1  简单值

const是声明常量的,对于简单值来讲,这个值第一次声明的什么就是什么,后面就不能再动了

如果你动了就会报错

const不会跑出它的作用域

所以你可以在不同的作用域下声明同名的const变量

5.2  复杂值

如果这样搞,就和简单变量一样,都会报错

如果你只修改其中的值就不会报错,并且可以成功修改

我们可以通过这个例子来看出来const的值并不是不变的,但const的指向是不变的 

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

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

相关文章

融合ELO机制的销售能力评估方案

ELO排位赛算法 文章目录 ELO排位赛算法一. ELO机制二. 销售能力抽象为ELO排位赛设计2.1 基础设计2.2 存在问题 三. 优化措施3.1 如何解决新销售存在冷启动问题新老人动态K值调整假设检验衡量赢的程度 3.2 如何解决转化率存在不置信的问题ELO升级为MultiELO 一. ELO机制 ELO等级…

C语言结构体

一、结构体的定义: 结构体(Struct)是C语言中的一个重要数据类型,它可以用来存储多个不同类型的变量。结构体类似于一个自定义的数据类型,可以包含多个不同类型的成员变量,每个成员变量可以有自己的数据类型…

sqlite3交叉编译

1、交叉编译sqllite3可以先从官网下载最新最新的源码进行编译。sqlite3下载sqlite3有两种版本的源代码,sqlite-amalgamation-3420000.zip这种是将所有的操作放到sqlite3中进行使用的。虽然官方推荐使用这种方法。但是对于嵌入式移植还是使用sqlite-autoconf-3420000…

WebGPU实战3D电商

在过去的几年里,我们一直在为 WebGPU 编写新版本的 Babylon.js 引擎。 随着下一代 Web 3D 即将在Chrome 102~103版本上公开WebGPU 1.0 ,人们的兴奋情绪与日俱增。 在这篇博文中,我将快速概述这个新的 Babylon.js WebGPU 引擎,并将…

go 爬虫速度控制

go 爬虫速度控制 使用go语言用原生net/http写爬虫如何优雅的控制并发和请求速度控制并发限流并发和限流的区别简单说明有了并发控制为什么还要限流 最总代码 使用go语言用原生net/http写爬虫如何优雅的控制并发和请求速度 go程序的执行效率相对python要快的多,且占…

今天实习第一天,用git

老板问了我是否用过gitee,并且是否用过git,在集成工具中,会git来提交代码。我说没有。 所以,先使用gitee。 01.登录gitee的官网,在此处登录。 02.绑定邮箱,我用的是QQ邮箱。 03.git的历史 git是分布式的…

用OpenCV进行图像分割--进阶篇

1. 引言 大家好,我的图像处理爱好者们! 在上一篇幅中,我们简单介绍了图像分割领域中的基础知识,包含基于固定阈值的分割和基于OSTU的分割算法。这一次,我们将通过介绍基于色度的分割来进一步巩固大家的基础知识。 闲…

Java实现站内信

假如后台某个任务比较耗时,这时就需要任务完成时,通知一下用户,如下图,实现站内信的效果 两张表即可实现 t_message_content内容表 CREATE TABLE t_message_content (c_id int(11) NOT NULL AUTO_INCREMENT COMMENT 消息的id,se…

flink-conf.yaml的参数

参数 ⚫jobmanager.memory.process.size:对 JobManager 进程可使用到的全部内存进行配置, 包括 JVM元空间和其他开销,默认为 1600M,可以根据集群规模进行适当调整。⚫ taskmanager.memory.process.size:对 TaskManage…

【全栈开发指南】OAuth2授权获取token调试接口的方式

在我们实际应用接口的调用调试过程中,需要用到token或者刷新token,GitEgg支持OAuth2.0协议进行认证授权,这里介绍说明如何通过Postman获取token和refresh_token并进行接口调试。 1、使用密码模式获取token 根据spring-security-oauth2的实现…

怎么使用文件高速传输,推荐镭速高速文件传输解决方案

​​随着互联网的发展,文件传输越来越频繁,如何实现文件高速传输已经越来越成为企业发展过程中需要解决的问题,在当今的业务中,随着与客户和供应商以及内部系统的所有通信的数据量不断增加,对 高速文件传输解决方案的需…

[静态库和动态库][VS2022]

静态库和动态库 前言:一、静态库二、动态库三、静态库和动态库的使用 前言: 我们写代码,可以分模块去写,最后可以协作,能整合起来; 可以吧代码的实现和声明分离。 比如:我的这篇博客C语言猜拳小…