预解析的注意事项

本文介绍了JavaScript中的变量提升和函数提升现象。变量提升只提升声明而不提升赋值,导致console.log(b)输出undefined。函数提升会将函数声明提前,使得fun()可以在声明前调用。而函数表达式中的fnc1因未被提升,调用时会导致错误。注意区分函数声明与函数表达式,理解它们在提升中的不同行为。
摘要由CSDN通过智能技术生成

预解析的注意事项

变量提升

就是把所有的变量声明提升到当前的作用域最前面,但是不提升赋值的操作
在这里插入图片描述
下面展示一些 内联代码片

// 变量提升 只会提升关键字及变量名  提升后的样子如下
var b;
console.log(b);
b=20;
如上,因此结果为undefined,赋值在下,所以没值

函数提升

就是把所有的函数声明提升到当前作用域最前面,不调用函数
在这里插入图片描述
下面展示一些 内联代码片

// 函数提升 只会提升关键字及变量名  提升后的样子如下
   //3.正常情况下
        function fn() {
             console.log('我能被输出');
        }
        fn();

        //4.函数提升
        fun();
        function fun() {
             console.log('我也能被输出出来');
        }


 //5.函数表达式
        var fnc = function () {
             console.log('正常情况下,我能被输出');
        }
        fnc();

        //6.fnc1是一个变量不是函数,所以无法输出,报错   fnc1 is not a function
        fnc1();
        var fnc1 = function () {
             console.log('这样子,我就不能被输出了');
        }
注意函数表达式不能跟函数混为一谈,函数表示中提升的是变量,多加注意!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值