前端面试题(一)let,const与var的区别及变量提升

银行前端面试高频基础问题——var、let和const到底有哪些区别?讲不清楚当场发感谢信!? 银行前端面试高频基础问题——var、let和const到底有哪些区别?讲不清楚当场发感谢信!? 面试官:知道const、let和var吧,说说他们的区别吧 我:… … 前言 可以说这是银行我们面试遇到的最高频的一个问题,也是一个很基础的问题了。所以,我们定然在这个问题上,不能讲不清楚,那就当场发感谢信了。当然,除此之外深入的还需要去了解一下const和let的实现原理。 let let 关键字用来声明变量,使用 let 声明的变量有几个特点: 不允许重复声明; 块儿级作用域(局部变量); 阅读详情

let,const与var的区别及变量提升。

	var a = 1;
	function fn(){
		console.log(a);//undefined
		var a = 10;
		console.log(a);//10
	}

上面这个例子说明使用var声明变量时,浏览器会悄悄将当前作用域内的变量声明提升到作用域顶部,也就是说上面函数内声明的变量a会被提升到到函数作用域的顶部,如下例

var a = 1;
	function fn(){
		var a;//相当于在这里声明了变量但没有赋值,所以下面的console.log输出的时undefined;
		console.log(a);//undefined
		var a = 10;
		console.log(a);//10
	}

但如果用let这里就会直接报错,这是因为es6的块级作用域。当使用let 声明了一个变量时,let会默认绑定到当前的块级作用域,一对大括号就代表一个块级作用域{},如下例

	for(let i=0;i<3;i++){
		console.log(i)//报错 Uncaught ReferenceError: Cannot access 'i' before initialization
		let i = "a";
		console.log(i)//a
	}

const的声明的值无法修改,但这里有一点需要注意,const声明的基础类型值不可以改变,但引用类型就不一定了。看下面这个例子

	const a = {};
	a.name = "张三";
	console.log(a);//{name:"张三"}

如上所示,这是因为基础类型在栈里保存的是值,而引用类型在栈里保存的是引用地址,const只是保证了栈里基础类型的值和引用地址不变,但无法保证堆里面的数据的改变.如果想保证堆里的数据不被改变可以使用Object.freeze({});

	const a =  Object.freeze({});
	a.name = "张三";
	console.log(a);//Uncaught SyntaxError: Identifier 'a' has already been declared

以上就是个人的一点总结,不对的地方希望大家给予指正。

【高频考点精讲】JavaScript 中 var、let 和 const 的区别,你真的弄懂了吗? 🧑‍🏫:全栈老李📅:2025 年 7 月🧑‍💻:前端初学者、进阶开发者🚀:本文由全栈老李原创,转载请注明出处。大家好,我是全栈老李。今天咱们来聊聊JavaScript中老生常谈却又容易踩坑的话题——var、let和const的区别。这玩意儿就像三国演义里的魏蜀吴,各有各的地盘,各有各的玩法。先来个灵魂拷问:你真的以为let就是新版var,const就是不能改的let吗?且听老李给你掰扯掰扯。 阅读详情

相关推荐

ASP.NET MVC5 C# Entity Framework 连接 Oracle 数据库

ASP.NET MVC5 C# Entity Framework 连接 Oracle 数据库创建数据库安装 Entity Framework配置数据库连接字符串添加实体模型类添加数据库上下文类添加控制器类运行测试 创建数据库 创建【全局数据库名】为 demodb 的Oracle数据库,用 SYSTEM 用户连接成功后创建【用户名】为 DJIANG 的用户,并授予该用户 DBA 角色 安装 Enti...

idjiang的博客 2538

关于的var、let、const的几个题目,你能答对几个?

1、 if(1){ var a = 1; console.log(a) } console.log(a) 1 1 2、 if(1){ let a = 1; console.log(a) } console.log(a) 1 a is not defined 3、 for (var i = 0; i < 3; i++) { console.log(i) } console.log(i) 0 1 2 3 4、 for (let i = 0

五花漏的博客 1922

【crawler笔记】R语言简单动态网页爬虫(rvest包)示例

1、爬虫目标 大家普遍认为Python的爬虫功能强大,但在解决动态加载或者登陆网站时,Python存在一定困难的,相对于一些普通爬虫,使用R语言会更方便。 以https://www.thepaper.cn/为例,爬取首页的新闻(标题、内容、时间),主要采用的是动态网页中常用的httr包。 初始学习时,参考了B站《20分钟入门基于R语言的网络爬虫_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili》的视频,但代码运行出现了报错,所以在原代码上做了修改。 2、代码分析及报错修改 library(rv

seeyouer1205的博客 3275

笔试:var let const、 解构赋值、call apply bind改变函数内部的this指向

var,let,const,解构赋值,改变this指向

weixin_45609659的博客 214

谷粒商城篇章9 ---- P248-P261/P292-P294 ---- 消息队列【分布式高级篇六】

RabbitMQ消息队列、RabbitMQ延时队列。

weixin_48568302的博客 1550

十五、SAP-物料需求计划(MRP)

业务逻辑、功能讲解、图文解析、章节总结

m0_72403327的博客 1095

var let const(经典面试篇)

var let const的区别 一)var声明变量存在变量提升,let和const不存在变量提升 二)let、const都是块级局部变量 三)同一作用域下let和const不能声明同名变量,而var可以 那么笔试题 for(let i=0;i<5;i++){ setTimeout(function(){ console.log(i); },0) } console.log(i); 输出:5 0 1 2 3 4 for(var i=0;i&l

csdn_smartyang的博客 651

北斗导航 | SPP、RTK、RTD、PPP-RTK、PPP算法原理,公式及完整matlab代码

开发参考:SPP适合入门学习GNSS定位原理和最小二乘。RTK是工程高精度定位主流方案,但依赖基站。PPP适合无基站区域的广域高精度应用。PPP-RTK是融合两者优点的新一代技术,但系统复杂度最高。· 代码资源:raPPPid(VieVS PPP)是功能完整的MATLAB开源PPP工具箱,支持多系统PPP-AR。MATLAB GPS Toolbox 提供从SPP到PPP的完整功能实现。· 实际应用:农业自动驾驶、无人机航测通常使用网络RTK;大地测量、地壳形变监测常采用PPP事后处理;

尘世冰封的专栏 829

js常见面试题:var 和let、const的区别(比较详细)

js常见面试题:var 和let、const的区别

weixin_44914088的博客 1172

Matlab可调用MODTRAN5封装器之Mod5

MODTRAN 是一个计算地球大气中电磁辐射传输的软件代码。MODTRAN是通过使用具有严格格式的输入文本文件来控制的。这个文件被称为“tape5”,扩展名为.tp5或.ltn。手工创建或编辑这个文件是不方便的。Mod5提供了一组函数来简化MODTRAN用例的处理。这些方法包括将tape5文件格式读取到Mod5类“实例”或“对象”中,更改文件中描述的案例实例,将tape5格式写回文件,在案例上运行MODTRAN并将MODTRAN输出文件中的各种结果读取回Matlab。还有许多绘图方法可用。

qq_19512613的博客 3255

AI大模型探索之路-认知篇1-全景透视:揭秘AIGC技术的进化之路

随着人工智能技术的突飞猛进,内容创作方式的发生了革命性的转变;从早期专业人员主导的内容生产,到现如今生成式人工智(AIGC)能创作时代;本篇文章主要讲解AIGC技术的演变历程。

寻道AI,探索AI无限可能! 1650

【前端面试题】let、const、var的区别

let、const、var的区别 let const var 是否存在变量提升 存在 不存在 不存在 是否具有块级作用域 有 有 无 是否可以重复声明 可以 不可以 不可以 是否存在暂时性死区 存在 存在 不存在 是否可以改变指针指向 可变 不可变 可变 是否必须设置初始值 可以不设置 必须设置 可以不设置 声明的变量是否是全局变量 不是

二琳爱吃肉的博客 673

药物对接仿真软件:HADDOCK_(3).分子对接基本原理

分子对接(Molecular Docking)是计算化学和结构生物学中的一种重要技术,用于预测小分子(如药物分子)与大分子(如蛋白质)之间的相互作用模式和结合亲和力。这一技术在药物设计和开发中具有广泛的应用,尤其是在寻找和优化潜在的药物候选物方面。本节将详细介绍分子对接的基本原理,包括其理论基础、计算方法和应用。

kkchenjj的博客 1170

字节一面:说说var、let、const之间的区别

最近博主在**字节面试**中遇到这样一个面试题,这个问题也是前端面试的高频问题,作为一名前端开发工程师,熟练掌握js是我们的必备技能,var、let、const之间的区别我们也得熟练掌握,博主在这给大家细细道来。

A_D_H_E_R_E的博客 1553

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

面试题:var、let 和const的区别

问题:var、let 和const的区别? (1)块级作用域 块作用域由 { }包括,let和const具有块级作用域,var不存在块级作用域。 块级作用域解决了ES5中的两个问题: 内层变量可能覆盖外层变量 用来计数的循环变量泄露为全局变量 (2)变量提升 var存在变量提升,let和const不存在变量提升,即在变量只能在声明之后使用,否在会报错。 (3)给全局添加属性 浏览器的全局对对象是window,Node的全局对象是global。var声明的变量为全局变量,同时会将该变量添加为全局对象的属性

公众号:前端充电宝 3753

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

面试题 - 说说 var、let、const 区别

请描述一下 var、let 、const 三者的区别。

杏子 1489

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

(面试常问)let、const、var的区别——ES6

var声明变量时,存在变量提升行为,并且可以重复声明,重复声明时如果赋值,其值会被刷新,不赋值,值还为之前的值(同一作用域内);let,const声明变量时,会生成块级作域,用其声明变量a后,使用变量a,将只会在此块作用域里寻找a变量。let,const声明变量时不会进行变量提升。const声明变量时必须赋值,并且值不能更改。(声明引用类型除外);

zhang1339435196的博客 967

前端面试:var,const,let的区别

变量声明语句执行前的这段区域,该变量处于 “未初始化” 的不可访问状态。声明还是会被提升到作用域顶部,但。ES6(ECMAScript 2015)是 JavaScript 语言的。,于 2015 年发布,是 JavaScript 发展史上的一个重要里程碑。包围的代码块内部形成的作用域,在该作用域内声明的变量只能在该代码块内访问。(2)缺乏块级作用域:在if或者for里面的变量会泄露出去。,这是现代 JavaScript 开发的统一最佳实践。(处于 “未初始化” 状态),直到代码执行到。

Mimany的博客 340

var、let和const的区别

var、let和const的区别 这个也是前端老生常谈的问题了,那么这篇文章我将结合红宝书学到的内容和书上的案例来给大家讲解 var关键字 在ES6之前,我们最习惯使用的就是var关键字来定义一个变量,但是var关键字会带来一些问题 var关键字存在变量的提升,比如下面的代码 function test() { console.log(num); // undefined var num = 10; } test(); 如果是刚开始学javascript这门语言的同学可能会

weixin_45129940的博客 513

javaScript中const,var,let区别与用法详解,大牛整理

我可以将最近整理的前端面试题分享出来,其中包含HTML、CSS、JavaScript、服务端与网络、Vue、浏览器、数据结构与算法等等,还在持续整理更新中,希望大家都能找到心仪的工作。CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】篇幅有限,仅展示部分截图:一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

pCITv1C的博客 805

JavaScript中var 的变量提升与 let/const 的 “暂时性死区”(TDZ)有什么区别?

前端小伙伴们,有没有被变量声明搞到抓头发过?比如用`var`的时候,`console.log(a)`居然不报错,结果值是`undefined`;用`let`的时候,同样的操作直接报`ReferenceError`……今天咱们就用“快递员”和“保安”的比喻,把`var`的“变量提升”和`let/const`的“暂时性死区(TDZ)”讲得明明白白~看完这篇,你不仅能避开这些坑,还能和面试官唠出花来!

前端大白话 734

JavaScript中let、const、var 的区别

ES5中作用域有:全局作用域、函数作用域。没有块作用域的概念。因此也有一系列的问题。//1,内层变量可能覆盖外层变量的问题var a = 2;if(false){var a = 3;//变量提升带来的,尽管存在块级作用域,但是var声明的变量会跨越这个域。fun()//2,用来计数的循环变量泄露为全局变量。i++) {// 5 i循环结束后,泄露成了全局变量ECMAScript 6(简称ES6)中新增了块级作用域。块作用域由。

2301_82241859的博客 868

var、let、const的区别以及暂时性死区(重点:let和const是有变量提升的!!)

但是呢,其实真正意义上说,let和const是有变量提升的!我们先来看一下MDN上是怎么说的其实let和const有变量提升的,只是因为产生了。

用于分享前端相关的知识和架构体系 432

千古前端图文教程:var、let、const 的区别详解(含暂时性死区与 const 可变性实战)

本文是「千古前端图文教程」项目中 JavaScript 进阶篇的核心文章,系统梳理 ES5 的 `var` 与 ES6 新增的 `let`、`const` 在全局对象挂载、变量提升、块级作用域、重复声明、暂时性死区(TDZ)等方面的本质区别,并深入剖析 `const` 声明常量"不可修改"的真实边界(基本类型 vs 引用类型)。读完本文,你将能准确回答高频面试题"var、let、const 有什么

gitblog_00264的博客 236

前端面试必会题:var与let、const的区别

一、var声明的变量会挂载在window上,而let和const声明的变量不会: var a = 100; console.log(a,window.a); // 100 100 let b = 10; console.log(b,window.b); // 10 undefined const c = 1; console.log(c,window.c); // 1 undefined 二、var声明变量存在变量提升,let和const不存在变量提升 console.log(a);

北冥の魚 480

JavaScript作用域与变量提升:var、let、const的底层逻辑与实战避坑

在JavaScript开发中,作用域决定了变量的可见范围与生命周期,是理解语言行为的基础。全局变量、函数作用域与ES6引入的块级作用域,构成了变量查找的完整路径。变量提升和暂时性死区则解释了为何var声明会输出undefined,而let/const在初始化前访问会直接报错。掌握这些机制,不仅能提高代码可读性,还能避免全局污染和闭包内存泄漏等工程隐患。从for循环setTimeout闭包陷阱,到模块化隔离方案,再到严格模式,本文将用真实案例与经典面试题,帮你系统性地夯实JavaScript核心基础。

weixin_34246551的博客 342
上一篇: 'express' 不是内部或外部命令,也不是可运行的程序或批处理文件,问题解决。
下一篇: grpc-web,使用protoc.exe生成js文件报错Missing input file
Hello_Tree__
博客等级 码龄8年 3粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值