• JavaScript 64 JavaScript 函数 64.1 JavaScript 函数定义


    JavaScript

    64 JavaScript 函数

    64.1 JavaScript 函数定义

    JavaScript 函数是通过 function 关键词定义的。

    可以使用函数声明或函数表达式。

    64.1.1 函数声明

    之前接触过,通过如下语法声明函数:

    function functionName(parameters) {
       要执行的代码
    }
    
    • 1
    • 2
    • 3

    被声明的函数不会直接执行。它们被“保存供稍后使用”,将在稍后执行,当它们被调用时。

    function myFunction(a, b) {
         return a * b;
    }
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    分号用于分隔可执行的 JavaScript 语句。

    由于函数声明不是可执行的语句,以分号结尾并不常见。

    64.1.2 函数表达式

    JavaScript 函数也可以使用表达式来定义。

    函数表达式可以在变量中存储:

    var x = function (a, b) {return a * b};
    
    • 1

    在变量中保存函数表达式之后,此变量可用作函数:

    var x = function (a, b) {return a * b};
    var z = x(4, 3);
    
    • 1
    • 2

    在这里插入图片描述

    上面的函数实际上是一个匿名函数(没有名称的函数)。

    存放在变量中的函数不需要函数名。他们总是使用变量名调用。

    上面的函数使用分号结尾,因为它是可执行语句的一部分。

    64.1.3 Function() 构造器

    JavaScript 函数是通过 function 关键词定义的。

    函数也可以通过名为 Function() 的内建 JavaScript 函数构造器来定义。

    var myFunction = new Function("a", "b", "return a * b");
    
    var x = myFunction(4, 3);
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    实际上无需使用函数构造器。上面的例子这么写也是一样的:

    var myFunction = function (a, b) {return a * b};
    
    var x = myFunction(4, 3);
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    大多数情况下,避免在 JavaScript 中使用 new 关键词。

    64.1.4 函数提升

    Hoisting 是 JavaScript 将声明移动到当前作用域顶端的默认行为。

    Hoisting 应用于变量声明和函数声明。

    正因如此,JavaScript 函数能够在声明之前被调用:

    myFunction(5);
    
     function myFunction(y) {
         return y * y;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    使用表达式定义的函数不会被提升。

    64.1.5 自调用函数

    函数表达式可以作为“自调用”。

    自调用表达式是自动被调用(开始)的,在不进行调用的情况下。

    函数表达式会自动执行,假如表达式后面跟着 ()

    无法对函数声明进行自调用。

    需要在函数周围添加括号,以指示它是一个函数表达式:

    (function () {
        var x = "Hello!!";      // 我会调用我自己
    })();
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    实际上是一个匿名的自调用函数(没有名称的函数)。

    64.1.6 函数可用作值

    JavaScript 函数可被用作值:

    function myFunction(a, b) {
        return a * b;
    }
    
    var x = myFunction(4, 3);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    JavaScript 函数可用在表达式中:

    function myFunction(a, b) {
        return a * b;
    }
    
    var x = myFunction(4, 3) * 2;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    64.1.7 函数是对象

    JavaScript 中的 typeof 运算符会为函数返回 “function”。

    在这里插入图片描述

    但是最好是把 JavaScript 函数描述为对象。

    JavaScript 函数都有属性方法

    arguments.length 会返回函数被调用时收到的参数数目:

    function myFunction(a, b) {
        return arguments.length;
    }
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    toString() 方法以字符串返回函数:

    function myFunction(a, b) {
        return a * b;
    }
    
    var txt = myFunction.toString();
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    定义为对象属性的函数,被称为对象的方法。

    为创建新对象而设计的函数,被称为对象构造函数(对象构造器)。

    64.1.8 箭头函数

    箭头函数允许使用简短的语法来编写函数表达式。【不需要 function 关键字、return 关键字和花括号。】

    // ES5
    var x = function(x, y) {
      return x * y;
    }
    
    // ES6
    const x = (x, y) => x * y;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    箭头函数没有自己的 this。它们不适合定义对象方法。

    箭头函数未被提升。它们必须在使用前进行定义。

    使用 const 比使用 var 更安全,因为函数表达式始终是常量值。

    如果函数是单个语句,则只能省略 return 关键字和大括号。因此,保留它们可能是一个好习惯:

    const x = (x, y) => { return x * y };
    
    • 1

    IE11 或更早的版本不支持箭头函数。

  • 相关阅读:
    dubbo安装跟部署
    C++数据结构补充(双向链表)
    Git一台电脑同时绑定两个账号(如gitlab,github)
    Java集合框架(一)-ArrayList
    linux-系统硬件信息查看方法
    Linux创建用户与yum安装软件
    SimpleITK使用——3. 常见操作
    SQL语言的分类:DDL(数据库、表的增、删、改)、DML(数据的增、删、改)
    港联证券:综合施策提振信心 资本市场新一轮深化改革拉开帷幕
    入门安全测试?从渗透测试开始做起....
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/127681900