扫码关注官方订阅号
function main(){ var read = read(); } function read() { return 6; } main();
为什么报错呀,read不是应该等于6吗?
人生最曼妙的风景,竟是内心的淡定与从容!
实际上代码是变成这样了。声明提前。 function main(){ var read = undefined; read = read(); //此时read是undefined 不是一个函数,并不能调用 } function read() { return 6; } main();
使用var存在变量提升,在函数开始有var read = undefined; read = read()就会报错
哪里覆盖了?main函数var read只是一个局部变量
function main(){
var othername = read();
}function read() {
return 6;
}main();
这个就不会报错,我也不知道为什么。。
因为main内部read会预解析为undefined,覆盖全局的函数。所以报错
read
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
使用var存在变量提升,在函数开始有var read = undefined; read = read()就会报错
哪里覆盖了?main函数var read只是一个局部变量
function main(){
}
function read() {
}
main();
这个就不会报错,我也不知道为什么。。
因为main内部
read会预解析为undefined,覆盖全局的函数。所以报错