js预解析

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);   

var f2 = function() {}

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值