扫码关注官方订阅号
具體看我截的圖
<script> var bar=function(){ var foo=function(){} foo=10; } var foo=1; bar(); alert(foo); </script>
js申明部分被顶置,函数内部的foo是局部变量,不影响全局的foo。
1函数声明会置顶
2变量声明也会置顶3函数声明比变量声明更置顶:)4变量和赋值语句一起书写,在js引擎解析时,会将其拆成声明和赋值2部分,声明置顶,赋值保留在原来位置5声明过的变量不会重复声明
以上这几点你作个参考,就明白原因了!
你的代码实际上运行的效果是:
function bar(){ function foo(){} var foo;//实际上无效 foo=10; } var foo; bar(); foo=1; console.log(foo);
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
js申明部分被顶置,函数内部的foo是局部变量,不影响全局的foo。
1函数声明会置顶
2变量声明也会置顶
3函数声明比变量声明更置顶:)
4变量和赋值语句一起书写,在js引擎解析时,会将其拆成声明和赋值2部分,声明置顶,赋值保留在原来位置
5声明过的变量不会重复声明
以上这几点你作个参考,就明白原因了!
你的代码实际上运行的效果是: