首页 > 其他分享 >下面这段代码的输出是 3

下面这段代码的输出是 3

时间:2023-11-10 12:55:05浏览次数:29  
标签:输出 函数 下面 内部 代码 立即 var 执行 变量

var b = 3;
(function(){
    b = 5;
    var b = 2;
})();
console.log(b);

立即执行函数内部,var发生变量提升,结果相当于 (function(){ var b; b=5; b=2; })()
所以这个立即执行函数并没有改变全局环境中的b,所以全局环境中的b依旧是3。

立即执行函数,执行完毕后会立即销毁,所以立即执行函数内部的变量b就被回收了,但是全局变量b不会被回收,所以console.log输出的就是全局变量b=3

自执行函数内部因为有var声明的存在,b相当于是私有作用域内的赋值,倘若没有var,b的赋值会是全局作用域下。能在外部输出。

函数 && 变量重新申明

有var重新声明——函数内部使用的是“自身”的变量,对变量的改变并不影响外部

没有var重新声明——函数内部使用的是外部的变量,对变量的改变影响外部

标签:输出,函数,下面,内部,代码,立即,var,执行,变量
From: https://www.cnblogs.com/longmo666/p/17823861.html

相关文章

  • 静态代码分析工具Helix QAC 2023.3:将100%覆盖MISRA C++2023规则
    静态代码分析工具HelixQAC2023.3:将100%覆盖MISRAC++:2023®规则 HelixQAC2023.3预计将于2023年第四季度发布的新MISRAC++®指南,将100%覆盖MISRAC++:2023®规则。 此外,此版本扩展了对C++20语言支持,并改进了PerforceValidate平台和HelixQAC与Validate的集成,包括其他......
  • 1PL模拟研究代码片段
    模拟研究模拟研究是教育测量研究中常见的组成部分,也是重要组成部分。其目的在于说明在模拟情况为真的情况下,模型的统计性能如何。我们可以根据我们的理论假设来设定或者调整数据生成的过程,由此探讨在不同条件下模型的统计性能如何。此外,模拟研究还有以下优势a)可以操纵多个条......
  • 2023-08-24:请用go语言编写。给定一个长度为n的数组arr, 现在你有一次机会, 将其中连续
    2023-08-24:请用go语言编写。给定一个长度为n的数组arr,现在你有一次机会,将其中连续的K个数全修改成任意一个值,请你计算如何修改可以使修改后的数列的最长不下降子序列最长。请输出这个最长的长度。最长不下降子序列:子序列中的每个数不小于在它之前的数。1<=k,n<=10^5,1<=a......
  • 永久禁用Windows Defender代码方案(可恢复)【支持Windows10、Windows11】
    永久禁用WindowsDefender代码方案(可恢复)【支持Windows10、Windows11】https://blog.csdn.net/m0_60961651/article/details/131090391代码文件下载地址:https://cloud.189.cn/t/jaieM3raeYjy视频演示文件下载地址:禁用操作(PowerShell要以管理员身份运行,视频演示不规范):https://clo......
  • 评估APP网页小程序代码UI开发H5估价师怎么评估精确研发价格?
    大家好,我是咕噜签名分发可爱多。今天跟大家分享点不一样的。作为一名应用程序开发评估师,可能涉及到的主要任务是为特定的应用程序提供估算开发成本和所需时间预测。为了为一个应用程序更准确地评估价格。整理了以下方面。1、如何让一个App更好、更精确地评估出价格?以下是一个可能的......
  • 支持在代码编辑器中调试接口,IDEA插件推荐
    今天给大家推荐一款IDEA插件:Apipost-Helper-2.0,写完代码IDEA内一键生成API文档,无需安装、打开任何其他软件;写完代码IDEA内一键调试,无需安装、打开任何其他软件;生成API目录树,双击即可快速定位API定义的代码…非常好用!主要包含以下功能:1、无侵入生成API文档编写完代码后,只需右键up......
  • R语言和jsonlite库编写代码示例
    R语言和jsonlite库来下载的程序。#导入jsonlite库library(jsonlite)#设置代理主机和端口proxy_host<-""proxy_port<-#使用httr库创建一个对象proxy<-create_proxy(proxy_host,proxy_port)#使用httr库的GET方法下载网页内容url<-""response<-GET(url,pro......
  • Ruby语言和VCR库编写代码示例
    Ruby语言和VCR库编写一个下载程序来完成任务。以下是代码的详细解释:require'vcr'require'open-uri'#设置VCR的配置VCR.configuredo|config|config.cassette_library_dir='vcr_cassettes'config.hook_into:webmockconfig.default_cassette_options={:rec......
  • Rust和isahc库编写代码示例
    Rust和isahc库编写的图像爬虫程序的代码:useisahc::{Client,Response};fnmain(){letclient=Client::new().with_proxy("").finish();leturl="";letresponse=client.get(url).send().await......
  • 408---OS三轮复习---输入输出管理
    常考知识点I/O管理基础 ⭐⭐设备独立性软件 ⭐⭐⭐⭐磁盘 ⭐⭐⭐⭐⭐⭐⭐固态硬盘 ⭐⭐⭐⭐I/O管理基础设备分类1、块设备信息交换以数据块为单位,传输速率较高,可寻址2、字符设备以字符为单位,传输速率低、不可寻址I/O接口机组上学了,这里仅作为补充1、I/O......