javascript - 请教个JS问题:关于函数的形参。
巴扎黑
巴扎黑 2017-04-11 09:04:45
[JavaScript讨论组]
function test(a){
    a=10; //**********
    alert(a); // 弹出10
}
test(5);
alert(a); //报错 a is not defined

在函数体内,我写了a=10。我的理解是把10赋值给一个全局变量a,因为没有var的变量等同于全局变量。
我在函数体外,alert(a)却报错了:a is not defined。请问为什么我在函数体外不能访问到变量a呢?

巴扎黑
巴扎黑

全部回复(3)
巴扎黑

因为在testa是你的形参,形参实际上相当于函数内的一个局部变量;你在test内给a赋值是赋值给形参a。

function test(a) {
    alert(a);
}
test(5); // 弹出5,不是很明显么

除非:

function test(b){
    a=10; // 这样才是给全局变量a 赋值
    alert(a); // 弹出10
}
test(5);
alert(a); // 10
怪我咯

a不是全局变量,如果以下函数才是全局变量

function test(){
    a=10;
}
PHP中文网

就是2楼说的,形参实质是函数内的局部变量

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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