js预解析

本文深入讲解JavaScript中的变量提升和函数提升机制,包括它们的工作原理、具体表现形式以及如何影响代码执行流程。通过实例演示,帮助读者理解提升机制对变量声明和函数定义的影响。

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

1》概念:

js代码执行之前会在相应的执行环境中(全局环境,局部环境)预先把一些东西(function,var定义的变量)解析到内存中

2》过程:

1)创建一个当前执行环境下的活动对象

2)将var声明的变量设置为活动对象的属性(也就是将其添加到活动对象当中),并将其赋值为undefined

3)将function定义的函数也添加到活动对象当中

3》具体情况:

函数定义的方法有:函数表达式,函数声明(当函数声明有提升)

当变量和函数同名时,函数提升比变量提升优先级高

3》js的变量提升和函数提升

函数提升比变量提升优先级高(只有函数声明有提升)

function t1(age) {
 
        console.log(age);
 
        var age = 27;
 
        console.log(age);
 
        function age() {}
 
        console.log(age);
 
    }
 
t1(3);//ƒ age() {}     27     27
分析完成后:

 function t1(age) {
 
        var age=     function () {}
 
        console.log(age);
 
        var age = 27;
 
        console.log(age);
 
    
 
        console.log(age);
 
    }
 
    t1(3);
1>变量提升

变量提升即将变量声明提升到它所在作用域的最开始的部分。

console.log(global); // undefined
 
var global = 'global';
 
console.log(global); // global
2>函数提升

js中创建函数有两种方式:函数声明和函数表达式。只有函数声明有提升

console.log(f1); // function f1() {}   
 
console.log(f2); // undefined  
 
function f1() {}   //函数声明
 
var f2 = function() {}    //函数表达式
 
function f1() {} // 函数提升,整个代码块提升到文件的最开始   
 
console.log(f1);   
 
console.log(f2);   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值