Java script中凡是函数的调用之后,一定有返回值。

例如:

求一组数中最大值
var arr = [23,34,45,56,78,89];
function getMax(arr){
        var max= arr[0];
        for(var i=1;i<arr.length;i++){
         max= max<arr[i]?arr[i]:max;
    }
    return max;
}
    console.log(getMax(arr));
 
return(中止程序退出函数或返回数据并终止终止程序)的作用:不但可以将数据返回到函数的外面,还可以返回完毕数据之后,立刻停止程序 并退出程序,return后面的代码不再执行。
关于return
JavaScript中的函数比较奇葩
1. 如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined ,比如tellStory();
2. 如果函数使用 return语句,那么跟在return后面的值,就成了函数的返回值 带返回值的getMax()
3. 如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined    比如:getMin();
4. 函数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退出,也就是说return后面的所有其他代码都不会再执行。
5. 推荐的做法是要么让函数始终都返回一个值,要么永远都不要返回值。
6. 如果想让函数返回多个值,最好是放在数组或是对象中
 
函数的四种形式:
a无参无返回值:
仅仅是代码的复用,或者代码的功能段
b无参有返回值
c有参无返回值
只要没有return关键字返回的数据,就没有真正的返回
d有参有返回值(实际应用最多)
 
函数的重载
  就是函数名相同,但是函数的行参个数或者形参的数据类型不同,这样就构成了函数的重载。但是JS中没有函数的重载。因为如果JS中有重名的函数,后面的函数会将前面的函数覆盖掉。
关于函数的预解析:
  在程序真正执行之前,会先将所有的代码扫描一遍,将变量的声明,函数的声明,参数提升到当前作用域的最前面。
 
 函数的声明方式与函数表达式的区别:
不同点:
1、函数的声明中函数有名字;
2、函数表达式中的函数没有名字,是匿名函数,前面的变量名字可以看做是函数的名字;
3、函数声明的函数在函数预解析的时候,会先将函数的声明提前到作用域的最前面。
相同点:执行调用的时候,作用是一样的。