JS变量的声明提前

本文详细介绍了JavaScript中变量及函数声明提前的特性。解释了使用var关键字声明的变量和函数声明形式创建的函数如何在代码执行前被声明,而函数表达式创建的函数则不会被声明提前。
<script>
            /*
             * 变量的声明提前
             *         使用var关键字声明的变量,会在所有的代码执行之前被声明(但是不会赋值),等到执行到再赋值。
             *         但是如果声明变量时不使用var关键字,则变量不会被提前声明。
             */
            console.log(a);//不会报错,因为a以及被提前声明,所有返回undefined值。
            
            var a=10;
            
            b=10;//相当于写window.b=10;
            console.log(b);//返回10。
            
            //console.log(c);//会报错,因为c并没有被提前声明。
            c=10;
            
            /*
             * 函数的声明提前
             *         使用函数声明形式创建的函数function 函数名(){}
             *             它会在所有的代码执行之前就被创建,所以我们可以在函数声明前调用函数。
             *         使用函数表达式创建的函数,不会被声明提前,所以不能在声明前调用。
             * 
             */
            
            fun1();//成功调用fun1函数。
            console.log(fun2);
            //fun2();//会报错,fun2变量虽然被声明提前了,但是函数没有。
            
            //函数声明,会被提前创建
            function fun1()
            {
                console.log("我是一个fun1函数");
            }
            
            //函数表达式,不会被提前创建
            var fun2=function()
            {
                console.log("我是一个fun2函数");
            }
        </script>

 

转载于:https://www.cnblogs.com/shenhengjia/p/9315451.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值