JavaScript 使用关键字 function 定义函数。

函数可以通过声明定义,也可以是一个表达式。


函数声明

在之前的教程中,你已经了解了函数声明的语法 :

function functionName(parameters) {
  执行的代码
}

函数声明后不会立即执行,会在我们需要的时候调用到。

实例

function myFunction(a, b) {
    return a * b;
}

尝试一下 »

分号是用来分隔可执行JavaScript语句。
由于函数声明不是一个可执行语句,所以不以分号结束。

函数表达式

JavaScript 函数可以通过一个表达式定义。

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

实例

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

尝试一下 »

在函数表达式存储在变量后,变量也可作为一个函数使用:

实例

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

尝试一下 »

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

函数存储在变量中,不需要函数名称,通常通过变量名来调用。

上述函数以分号结尾,因为它是一个执行语句。

Function() 构造函数

在以上实例中,我们了解到函数通过关键字 function 定义。

函数同样可以通过内置的 JavaScript 函数构造器(Function())定义。

实例

var myFunction = new Function("a", "b", "return a * b");

var x = myFunction(4, 3);

尝试一下 »

实际上,你不必使用构造函数。上面实例可以写成:

实例

var myFunction = function (a, b) {return a * b}

var x = myFunction(4, 3);

尝试一下 »

在 JavaScript 中,很多时候,你需要避免使用 new 关键字。

函数提升(Hoisting)

在之前的教程中我们已经了解了 "hoisting(提升)"。

提升(Hoisting)是 JavaScript 默认将当前作用域提升到前面去的的行为。

提升(Hoisting)应用在变量的声明与函数的声明。

因此,函数可以在声明之前调用:

myFunction(5);
function myFunction(y) {
    return y * y;
}

使用表达式定义函数时无法提升。


自调用函数

函数表达式可以 "自调用"。

自调用表达式会自动调用。

如果表达式后面紧跟 () ,则会自动调用。

Y不能自调用声明的函数。

通过添加括号,来说明它是一个函数表达式:

实例

(function () {
    var x = "Hello!!";      // 我将调用自己
})();

尝试一下 »

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


函数可作为一个值使用

JavaScript 函数作为一个值使用:

实例

function myFunction(a, b) {
    return a * b;
}

var x = myFunction(4, 3);

尝试一下 »

JavaScript 函数可作为表达式使用:

实例

function myFunction(a, b) {
    return a * b;
}

var x = myFunction(4, 3) * 2;

尝试一下 »


函数是对象

在 JavaScript 中使用 typeof 操作符判断函数类型将返回 "function" 。

但,JavaScript 函数描述为一个对象更加准确。

JavaScript 函数有 属性方法

arguments.length 属性返回函数调用过程接收到的参数个数:

实例

function myFunction(a, b) {
    return arguments.length;
}

尝试一下 »

toString() 方法将函数作为一个字符串返回:

实例

function myFunction(a, b) {
    return a * b;
}

var txt = myFunction.toString();

尝试一下 »

函数定义作为对象的属性,称之为对象方法。
函数如果用于创建新的对象,称之为对象的构造函数。

转载于:https://www.cnblogs.com/navysummer/p/8438944.html

JavaScript 函数定义相关推荐

  1. JavaScript 函数定义方式

    函数的定义 通俗的来讲,函数是由事件驱动的或者当它被调用时执行的可重复使用的代码快.它是 JavaScript 语言一个即重要又复杂的组成部分,任何一个 JavaScript 框架,如 Dojo.jQ ...

  2. 【JavaScript:语法】javascript函数定义以及常见用法

    转载:javascript函数定义以及常见用法 javascript函数定义以及常见用法 我们知道,js函数有多种写法,函数声明 ,函数表达式,Function式构造函数,自执行函数,包括Es6的箭头 ...

  3. JavaScript 函数定义+内置函数使用+array对象+object类型

    文章目录 函数定义 random() setInterval() setTimeout() 数组对象 object 函数定义 两种格式: function 自定义函数名称(参数1,参数2,...,参数 ...

  4. JavaScript函数定义的几种方式

    什么是函数呢? 对于JS来说,我们可以把函数理解为任意一段代码放在一个盒子里,在我们想要让这段代码执行的时候,直接执行这个盒子里的代码就行.专业一点来讲:JavaScript 函数是被设计为执行特定任 ...

  5. Javascript和JQuery函数定义方式

    Javascript 函数定义方式 1.function show() {     } 2.var cal = function() {     },必须先声明才能调用 示例: <html> ...

  6. HTML和JavaScript函数之间的关系

    在javaScript中有两类函数,一个是自定义的函数,一个是JavaScript中的函数.在HTML中javaSrcipt能和HTML完全的融合,也就是我们的JavaScript系统函数能直接的应用 ...

  7. Javascript函数和事件

    一.默认函数 JavaScript提供了一些默认的函数 编码函数escape():将非字母.数字字符转换成ASCII码 译码函数unescape():将ASCII码转换成字母.数字字符 求值函数eva ...

  8. JavaScript 函数参数

    JavaScript 函数参数 JavaScript 函数对参数的值没有进行任何的检查. 函数显式参数(Parameters)与隐式参数(Arguments) functionName(paramet ...

  9. 菜鸟教程 之 JavaScript 函数(function)

    From:https://www.runoob.com/js/js-function-definition.html JavaScript 函数定义 JavaScript 使用关键字 function ...

最新文章

  1. 未经任何测试的源代码开放
  2. js检测是否安装了flash插件
  3. 使用taro命令(taro convert)转h5碰到的一些问题
  4. 张小龙:如何把产品做简单
  5. numpy找到最大值坐标_学习OpenCV convexhull并用numpy实现
  6. ubuntu查看oracle客户端,ubuntu 9.04 下安装 oracle 客户端oracle-xe-client
  7. SQL Server 数据库中的 MD5 和 SHA1
  8. 性能测试知多少----性能测试分类之我见
  9. mysql57介绍_MySQL5.7 JSON类型使用介绍
  10. 2021财经直播系统 H5网页直播 大区直播间源码
  11. AppCompatDialog背景透明
  12. html5 判断页面加载,js判断页面是否加载完成的方法
  13. linux rpm与deb 区别,rpm与deb的区别
  14. 小E开发板wifi音箱二实现网络助手发送整个WAV音乐
  15. 语音识别提取视频文案
  16. Oblivious Data Structures学习笔记
  17. 拒绝调包 手写实现神经网络(复习专用)
  18. vmware设置虚拟机静态ip
  19. nginx之root alias proxy_pass测试
  20. MySQL utf8mb4字符集按中文拼音排序

热门文章

  1. centos下安装VMware Server 虚拟机的方法
  2. [RHEL5企业级Linux服务攻略]--第2季 Samba服务全攻略答疑贴
  3. 计算机的起源英语作文,冰箱的起源英语作文
  4. 【数据平台】pandas按条件去重
  5. 离线轻量级大数据平台Spark之JavaRDD关联join操作
  6. Java实现算法导论中最大公约数欧几里得算法
  7. 窗口消息——Windows核心编程学习手札之二十六
  8. CodeBlocks+Qt(MinGW)配置 QT4.8.x MinGW 问题解决
  9. 四阶龙格库塔法的基本思想_SIR模型计算基本再生数R0
  10. java getSource()和 getActionCommand()