函数概念
    简单理解就是用来管理我们写的代码块 ,代码块主要包含(变量 if语句 for语句 while语句 switch语句)等。
    定义的每个函数都会有自己的的对立空间 ,同样的一段代码 ,在不同函数中即使名称一样也不会有影响。
    这就是函数的作用,用来管理我们写的代码块, 而对象的概念更为广泛 可以理解为用于管理函数和属性。

    函数定义

    • 函数分为函数名 函数体 形参 实参
    • 函数名 即函数名称
    • 函数体 就是函数执行代码区域
    • 形参 就是定义函数时 声明需要传的参数
    • 实参 就是调用的时候传的参数

    demo例子

    1. function test(name,age){ => test是函数名 name,age是形参
    2. //函数体
    3. }
    4. test("rise",100,'gril') "rise",100,'gril'这个是实参 实际传的参数可以这样理解

    函数分类

    参数角度来分函数分为有参函数无参函数

    有参函数

    1. function test(name,age){
    2. console.log(name,'name')
    3. console.log(age,'age')
    4. }
    5. test();


    无参函数

    1. function test(){
    2. alert()
    3. //代码块
    4. }
    5. test("rise",100)

    从函数返回值角度来分 函数分为有返回值无返回值

    有返回值 有return返回

    1. function test(){
    2. var x=5;
    3. return x;
    4. }

    无返回值 无return 返回

    1. function test(){
    2. var x=5;
    3. }

    函数使用场景

    普通函数 **

    1. function test(){
    2. alert()
    3. //代码块
    4. }
    5. test()

    匿名函数 (匿名函数就是没有函数名的函数)
    这里定义方式是定义一个没有名称的函数赋值给一个变量

    1. var fn = function(){
    2. //代码块
    3. }
    4. fn()

    dom事件方法中使用匿名函数

    1. var dom = document.getElementById('app')
    2. dom.onclick = function(){
    3. //代码块
    4. }

    对象中使用匿名函数

    1. var obj = {
    2. getMess:function(){
    3. //代码块
    4. }
    5. }

    内置数组遍历方法中使用函数

    1. var arr = [1,2,3]
    2. arr.forEach((it,indx,arr) => {
    3. //代码块
    4. })