前端第一周,Javascript--变量名和函数名重复时

本文聚焦JavaScript中变量名和函数名重名的情况。在提升阶段,函数优先,重名时访问的是函数;执行阶段,变量优先,重名时访问的是变量。区分提升和执行阶段,关键看重名变量声明赋值的前后。文中还给出了相关代码示例。

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

 当 变量名 和 函数名 重名时  :

                在变量和函数声明定义之前,访问使用这个名字,访问使用的都是 函数
                      因为 在 提升阶段 函数优先。
                在执行过这个名字变量声明赋值这一句之后,访问使用这个名字,访问使用的都是 变量
                       因为 在 执行阶段 变量优先 。    

怎么区分在 提升阶段 还是在 执行阶段?

              就关注一点,是在这个重名的变量声明赋值之前还是之后
              之前就算 提升阶段
              之后就算 执行阶段    

  console.log(abc); //调用了整个函数:ƒ abc(){console.log('abc函数被调用了');}

        abc();//xyz函数被调用了

        //变量:

        var abc = 'hello';

        console.log(abc);//'hello'

        //函数案例1:

        function abc() {

            console.log('abc函数被调用了');

        }

        console.log(abc);//'hello'

        // abc();调用结果:Error: abc is not a function


 

        console.log(xyz);//调用了整体 ƒ xyz(){console.log('xyz函数被调用了');}

        //函数案例2:

        function xyz() {

            console.log('xyz函数被调用了');

        }

        console.log(xyz);//调用了整体 ƒ xyz(){console.log('xyz函数被调用了');}

        xyz();

        var xyz = 'hello';

        console.log(xyz);//'hello'

        xyz();//Error: xyz is not a function

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值