同名變量和函數的問題
phpcn_u3114
phpcn_u3114 2017-06-20 17:42:16
[JavaScript讨论组]

具體看我截的圖QQ截图20170620174114.jpg

phpcn_u3114
phpcn_u3114

全部回复(2)
PHP中文网
<script>
var bar=function(){
   var foo=function(){}
   foo=10;
}
var foo=1;
bar();
alert(foo);
</script>

js申明部分被顶置,函数内部的foo是局部变量,不影响全局的foo。

  • 回复 谢谢你的回答,弄清楚了
    phpcn_u3114 作者 2017-06-21 22:38:15
  • 回复 谢谢你的回答,弄清楚了
    phpcn_u3114 作者 2017-06-21 22:38:16
ringa_lee

1函数声明会置顶

2变量声明也会置顶
3函数声明比变量声明更置顶:)
4变量和赋值语句一起书写,在js引擎解析时,会将其拆成声明和赋值2部分,声明置顶,赋值保留在原来位置
5声明过的变量不会重复声明

以上这几点你作个参考,就明白原因了!

你的代码实际上运行的效果是:

function bar(){
 function foo(){}
  var foo;//实际上无效
  foo=10;
}
var foo;
bar();
foo=1;
console.log(foo);


  • 回复 谢谢你帮我解惑,弄清楚了
    phpcn_u3114 作者 2017-06-21 22:39:29
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号