没出错啊:
<script>
function   functionName() 

    return   
        "I   am   a   function"; 

alert(functionName);
</script>

解决方案 »

  1.   

    return折行干嘛?!return在执行完本行后直接返回,
    而且js中只是建议加分号,而不是必须以分号结尾!
    没分号当然就按换行符了!
      

  2.   

    不同的语言 当然可以不一样了
    c中有 var吗?
      

  3.   

    function   functionName() 

        return "I   am   a   function"; 

    应该就没问题
      

  4.   

    有时候折行是为了清晰;
    用分号只是使用各种语言的过程中养成的一种统一的习惯
    ”return在执行完本行后直接返回“的说法显然不是完全正确的
    -----------------------------------------------
    return折行干嘛?! return在执行完本行后直接返回, 
    而且js中只是建议加分号,而不是必须以分号结尾! 
    没分号当然就按换行符了!
      

  5.   

    sorry,以为是语法错呢,原来是说返回值不符预期
      

  6.   

    return在执行完本行后直接返回。
    更正为
    return在执行完紧随其后滴程序段后直接返回。俺可没有return后面直接折行滴习惯,哈
      

  7.   

    function       functionName()   
    {   
            return   "I       am       a       function";   
    }   
    没有没问题的
    可能是你IE的问题哦
      

  8.   

    按行的问题
    LZ没有仔细看脚本的语法
    JS是在不是字符串跨行的情况下,如果没有分号会默认到换行处就为一个语句
    所以LZ的函数相当于 return了一个空
    当然是未定义,如果像上面说的,写在一行内就不会有错了
      

  9.   

    另外建议LZ不要随口说什么东西是BUG
    多去想想,查查资料
    这种已经存在了这么久的语言不是那么容易出BUG的
      

  10.   

    function functionName() 

        return   
            "I   am   a   function"; 

    等同于
    function functionName() 

        return;   
        "I   am   a   function"; 

      

  11.   

    大家讲得对,JS里换行和分号基本是一个意思,如果真的需要重起一行写内容,就必须在当行有内容,以+号结束,这样才能继续上一行的内容。function functionName(){ 
      return ""+
      "I   am   a   function"; 

      

  12.   

    你都换行了,它认为已经返回默认直了.
    后面的"I am a function" 就理所当然是 Undefined
      

  13.   

     return   "I   am   a"+  "   function"; 
    这些放在一行中可能就没问题了!!!
      

  14.   

    自我总结一下再说吧:根据大家的测试,高版本的IE或者其他浏览器能够支持return后面直接换行的写法;老版本的IE不支持。至于是否是bug就不谈了,但从其发展以及与其他语言比较来看,这种支持还是有益的。