一些面试题之JS基础(一):变量提升,闭包

本文总结了作者在找前端工作时遇到的高频JS面试题,主要探讨了变量提升和闭包的概念。对于变量提升,文章解释了JS如何编译并执行代码,强调只有声明会被提升,赋值不会。而闭包则被定义为能访问其父函数内部变量的函数,通过闭包可以保持变量在内存中的状态,但也可能导致内存消耗过大,需要谨慎使用。
摘要由CSDN通过智能技术生成
这段时间在忙着找前端方面的新工作,面试了几家公司,有大有小,也积累了一些面试经验。在这里分享几道出现频率比较高或者比较典型的一些JS基础方面的面试题,算是自己的一个总结。
							**下面是具体的面试题**
1. 简述一下对JS变量提升的理解。

非严格模式下,JS有变量提升的特点。
JavaScript的工作原理是先编译再执行,在编译的过程中,解释器会把所有的声明“移动”到作用域的最上方,而赋值和其他逻辑会留在原地。举一个最简单的例子:

x = 1;
console.log(x);
var x;

这段代码,最后输出的结果是1,其实逻辑是和下面这段代码相同的:

var x;
x = 1;
console.log(x);

但是需要注意的是:**JavaScript 只有声明的变量会提升,而初始化的不会提升。**再一个简单的例子:

console.log(a);
var a = 0;

此时输出的结果是undefined,此时这段代码可以理解为:只是提升了声明,但是没有提升赋值操作

var a;//undefind
cosole.log(a);
a = 0;

因此,输出结果才为undefined。
函数提升和变量提升相似。下面展示两段代码:

foo();
function
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值