1.1 js中函数定义解析(学习笔记)

时间:2021-02-07 20:37:09

1.1.1函数的分类

  • 函数声明式 :使用function声明函数,并指定函数名。
  • 函数表达式:使用function声明函数,但未指定函数名。
  • 函数表达式2.匿名函数,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。
  • 立即执行函数,两种写法。立即执行函数里面的函数必须是函数表达式
    (function(){})()        (function(){}())
    (function(){}())这样写的好处是在内部定义的变量不会跟外部的变量有冲突,达到保护内部变量的作用。
  • 回调函数 此函数比较特殊,一般属于异步。例如 setTimeout(function, xx)

1.2函数声明与函数表达式的区别

  1. 调用位置
    函数声明可以在当前作用域下提前调用,因为 函数提升即将函数声明提升到它所在作用域的最开始的部分(js预解析函数提升)

    函数表达式只能在声明之后调用

  2. 调用方法区别
    函数声明必须有函数名。【通过函数名调用】

    函数表达式中的函数名可选的(所以称为匿名函数)(更像js语句的一部分)
    比如赋值表达式等号右边,作为函数参数,立即执行函数。这三种情况都可以不使用函数名。【1.作为其他函数的参数,通过参数名访问。2.函数赋值给一个变量,通过变量名访问。】

  3. 使用范围
    函数声明只能作用于全局中,或者镶嵌在其他函数中。不能出现在循环,条件中(待确认)(部分探讨见1.4)
  4. 函数表达式可以直接在函数后接()调用