深入理解js的变量提升和函数提升

本文详细解释了JavaScript中的变量提升和函数提升的概念,并通过具体的代码示例展示了它们的工作原理。了解这些特性对于深入理解JavaScript的执行机制至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、变量提升

 在ES6中提出了块级作用域,用var声明的变量,起作用域应为对整个块都起作用,所以会跑偏;而且使用var声明的变量会出现“变量提升”现象。

那么什么是变量提升呢?用以下代码直观感受一下:

其执行顺序应为:




二、函数提升

  js中创建函数有两种方式:函数声明式和函数字面量式。只有函数声明才存在函数提升!如:

1
2
3
4
console.log(f1); // function f1() {}   
console.log(f2); // undefined  
function f1() {}
var f2 = function() {}

  只所以会有以上的打印结果,是由于js中的函数提升导致代码实际上是按照以下来执行的:

1
2
3
function f1() {} // 函数提升,整个代码块提升到文件的最开始<br>     console.log(f1);   
console.log(f2);   
var f2 = function() {}

  

实例:

          function Text(n){
                console.log(n);
                var n=2;
                function n(){
                }
                console.log(n)
            }
            Text(1)

执行顺序应为:

                var n
                function n(){
                }
                console.log(n);
                n=2;
                console.log(n)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值