请问高手下面的代码哪里错了?
var aa=900;
 
function bb(q)
{
 var q=90;}
 
document.writeln(bb(aa));

解决方案 »

  1.   

    函数没有要执行的语句,就定义了一个变量,调用函数时候,函数不知道要干嘛~
    变量aa 结果自然是undefined;var aa=900;
     
    function bb(q)
    {
     var q=90;
     return aa; 
    }
     
    document.writeln(bb(aa));
    这样函数就知道要返回什么了
      

  2.   

    你想输出q吗?
    function bb(q)
    {
    var q = 90
    return q
    }显示为 90.
    如果你想显示900
    function bb(q)
    {
    return q
    }
      

  3.   

    结果是运行错误,不是undefined;
      

  4.   

    我是想定义一个变量和一个函数,然后把变量的值导入到函数中,通过调用函数证明变量的值没有改变。
    var aa=900;
     
    function bb(q)
    {
     var q=90;}
     bb(aa);
    document.writeln(aa); 
      

  5.   


    var aa=900;
     
    function bb(q)
    {
     q=90;}
    bb(aa);
    console.log(aa);
    结果还是900
    是这意思吗?
      

  6.   

    你要的是c语言中的“指针”功能,但是js中没有“指针”这类功能,只有用对象的引用来实现var aa=[900];
    function bb(q)
    {
    q[0]=90;
    }
    bb(aa);
    alert(aa[0]);
      

  7.   

    你想了解的应该是形参和实参的问题
    当bb(aa)函数执行时,其实是讲aa的值赋给了bb函数的内部变量q,所以之后操作的都是变量q,应aa没有实质关系,所以最后输出的alert(aa)依旧为900
      

  8.   

    LZ确认是这段代码错了吗?
    同意2楼的意见,运行了LZ提供的代码片段,最后结果是undefined,并没有报错
    IE和CHROME都是一样的效果
      

  9.   

    var aa= {};
    var aa.a=900;
     
    function bb(q)
    {
         q.a=90;
        return q.a;
    }
     
    document.writeln(bb(aa));根据我理解的你的业务逻辑
      

  10.   

    LZ试试语句分开写var aa=900;
     
    function bb(q)
    {
     var q=90;
     return q;
    }
     
    var display = bb(aa);
    document.writeln(display);
      

  11.   

    楼主,因为你的function内部没有return 任何东西,所以,默认返回undefined.
    望采纳!
      

  12.   

    可是提示是错误缺少函数,不是提示返回值是underfined,underfined跟错误是两码事。另外这部分代码是来自一个视频教程中的。
      

  13.   

    我用Firefox和Chrome调试,一切正常,页面输出undefined,根本不是什么错误。
    你自己先确定你测试的代码没有问题。
      

  14.   

    我用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>
      

  15.   

    你输出bb(900)或bb(90)或bb(aa)或bb()都是undefined
    函数中只是给变量赋值而已
    也就是说类似直接这么写(当然这个写法肯定不对...)
    document.writeln(var cc = 300);
      

  16.   

    第一个 关于函数本身的知识点 一个是变量作用域 一个是参数传递类型 如果是教程上的一些源码 基本是属于这两个考核点 
    关于作用域 对于JS 变量没有块级作用域 但函数中的变量是有自己的作用域的 另外同一层级上的变量 你是定义在开头还是定义在结尾 都可以用 
    关于参数传递 一般字符 数值 逻辑型变量是传值 而数组 对象是传值的 所以一个数组作为参数传递到一个函数中 函数中修改了某个数组元素的值 跳出函数后 该值也不是原先的那个值了 而是修改后的 这个叫传址方式而对于你说的IE6浏览器下执行报错 从语法上分析没有任何问题 只能无奈的说 IE6必须死!
      

  17.   

    我用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,