请问高手下面的代码哪里错了?》 请问高手下面的代码哪里错了?var aa=900; function bb(q){ var q=90;} document.writeln(bb(aa)); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 函数没有要执行的语句,就定义了一个变量,调用函数时候,函数不知道要干嘛~变量aa 结果自然是undefined;var aa=900; function bb(q){ var q=90; return aa; } document.writeln(bb(aa));这样函数就知道要返回什么了 你想输出q吗?function bb(q){var q = 90return q}显示为 90.如果你想显示900function bb(q){return q} 结果是运行错误,不是undefined; 我是想定义一个变量和一个函数,然后把变量的值导入到函数中,通过调用函数证明变量的值没有改变。var aa=900; function bb(q){ var q=90;} bb(aa);document.writeln(aa); var aa=900; function bb(q){ q=90;}bb(aa);console.log(aa);结果还是900是这意思吗? 你要的是c语言中的“指针”功能,但是js中没有“指针”这类功能,只有用对象的引用来实现var aa=[900];function bb(q){ q[0]=90;}bb(aa);alert(aa[0]); 你想了解的应该是形参和实参的问题当bb(aa)函数执行时,其实是讲aa的值赋给了bb函数的内部变量q,所以之后操作的都是变量q,应aa没有实质关系,所以最后输出的alert(aa)依旧为900 LZ确认是这段代码错了吗?同意2楼的意见,运行了LZ提供的代码片段,最后结果是undefined,并没有报错IE和CHROME都是一样的效果 var aa= {};var aa.a=900; function bb(q){ q.a=90; return q.a;} document.writeln(bb(aa));根据我理解的你的业务逻辑 LZ试试语句分开写var aa=900; function bb(q){ var q=90; return q;} var display = bb(aa);document.writeln(display); 楼主,因为你的function内部没有return 任何东西,所以,默认返回undefined.望采纳! 可是提示是错误缺少函数,不是提示返回值是underfined,underfined跟错误是两码事。另外这部分代码是来自一个视频教程中的。 我用Firefox和Chrome调试,一切正常,页面输出undefined,根本不是什么错误。你自己先确定你测试的代码没有问题。 我用Firefox和Chrome调试,一切正常,页面输出undefined,根本不是什么错误。你自己先确定你测试的代码没有问题。请问高手你再看看是什么问题?<html><head><script type="text/javascript src="**.js">var aa=900; function bb(q){ var q=90;} document.writeln(bb(aa)); </script></head><body></body></html> 你输出bb(900)或bb(90)或bb(aa)或bb()都是undefined函数中只是给变量赋值而已也就是说类似直接这么写(当然这个写法肯定不对...)document.writeln(var cc = 300); 第一个 关于函数本身的知识点 一个是变量作用域 一个是参数传递类型 如果是教程上的一些源码 基本是属于这两个考核点 关于作用域 对于JS 变量没有块级作用域 但函数中的变量是有自己的作用域的 另外同一层级上的变量 你是定义在开头还是定义在结尾 都可以用 关于参数传递 一般字符 数值 逻辑型变量是传值 而数组 对象是传值的 所以一个数组作为参数传递到一个函数中 函数中修改了某个数组元素的值 跳出函数后 该值也不是原先的那个值了 而是修改后的 这个叫传址方式而对于你说的IE6浏览器下执行报错 从语法上分析没有任何问题 只能无奈的说 IE6必须死! 我用Firefox和Chrome调试,一切正常,页面输出undefined,根本不是什么错误。你自己先确定你测试的代码没有问题。请问高手你再看看是什么问题?<html><head><script type="text/javascript src="**.js">var aa=900; function bb(q){ var q=90;} document.writeln(bb(aa)); </script></head><body></body></html>测试了所有的浏览器包括ie6都返回的undefined, 帮忙看看代码,JSP页面传参,利用javascript弹出窗口跳转 脚本连续滚动字幕 prototype的使用 如何判断一个javascript方法是否存在? 求一正则表达式写法 如何用下拉框實現表單的提交 求完整功能的两个列表项间选项移动! 两层函数的传参? 如何动态显示自定义的值? jqGrid自定的add按钮怎么实现页面跳转? 一个元素,被监听2次替换了, 怎么让这2个函数都执行? 求解啊,实现单条数据查询修改,但是总报java.lang.NumberFormatException: null错误
变量aa 结果自然是undefined;var aa=900;
function bb(q)
{
var q=90;
return aa;
}
document.writeln(bb(aa));
这样函数就知道要返回什么了
function bb(q)
{
var q = 90
return q
}显示为 90.
如果你想显示900
function bb(q)
{
return q
}
var aa=900;
function bb(q)
{
var q=90;}
bb(aa);
document.writeln(aa);
var aa=900;
function bb(q)
{
q=90;}
bb(aa);
console.log(aa);
结果还是900
是这意思吗?
function bb(q)
{
q[0]=90;
}
bb(aa);
alert(aa[0]);
当bb(aa)函数执行时,其实是讲aa的值赋给了bb函数的内部变量q,所以之后操作的都是变量q,应aa没有实质关系,所以最后输出的alert(aa)依旧为900
同意2楼的意见,运行了LZ提供的代码片段,最后结果是undefined,并没有报错
IE和CHROME都是一样的效果
var aa.a=900;
function bb(q)
{
q.a=90;
return q.a;
}
document.writeln(bb(aa));根据我理解的你的业务逻辑
function bb(q)
{
var q=90;
return q;
}
var display = bb(aa);
document.writeln(display);
望采纳!
你自己先确定你测试的代码没有问题。
你自己先确定你测试的代码没有问题。
请问高手你再看看是什么问题?
<html>
<head>
<script type="text/javascript src="**.js">
var aa=900;
function bb(q)
{
var q=90;}
document.writeln(bb(aa));
</script>
</head>
<body>
</body>
</html>
函数中只是给变量赋值而已
也就是说类似直接这么写(当然这个写法肯定不对...)
document.writeln(var cc = 300);
关于作用域 对于JS 变量没有块级作用域 但函数中的变量是有自己的作用域的 另外同一层级上的变量 你是定义在开头还是定义在结尾 都可以用
关于参数传递 一般字符 数值 逻辑型变量是传值 而数组 对象是传值的 所以一个数组作为参数传递到一个函数中 函数中修改了某个数组元素的值 跳出函数后 该值也不是原先的那个值了 而是修改后的 这个叫传址方式而对于你说的IE6浏览器下执行报错 从语法上分析没有任何问题 只能无奈的说 IE6必须死!
你自己先确定你测试的代码没有问题。
请问高手你再看看是什么问题?
<html>
<head>
<script type="text/javascript src="**.js">
var aa=900;
function bb(q)
{
var q=90;}
document.writeln(bb(aa));
</script>
</head>
<body>
</body>
</html>
测试了所有的浏览器包括ie6都返回的undefined,