frog,陈羽凡,全家福照片-班级公共讯息发布-有爱的集体-重创美好明天

频道:趣闻中心 日期: 浏览:263

函数表达式是 JavaScript 中的一个既强壮又简单让人困惑的东西。在之前的文章中介绍过,界说函数有两种方法:一种是函数声明,另一种是函数表达式。函数声明的语法如下:

函数声明语法

首先是 function 要害字,然后是函数的姓名,这便是指定函数名的方法。关于函数声明,它的一个重要特征便是函数声明提高,意思是在履行代码之前会先读取函数声明。这意味着能够把函数声明放在调用它的句子后边。例:

函数声明提高

上面的代码是能够正常履行,由于在代码履行之前会先读取函数声明。这个进程便是函数声明提高。

第二种创立函数的方法便是运用函数表达式。函数表达式有几种不同的语法方法。下面是最常见的一种方法:

运用函数表达式创立函数

上面这种方法创立函数看起来好像是惯例的变量赋值句子,创立一个函数并将它赋值给变量 functionName 。这种情况下创立的函数叫做匿名函数,由于 function 要害字后边没有标识符。函数表达式与其他表达式相同,在运用前必须先赋值。以下代码会导致过错:

函数表达式,运用前必须先赋值

了解函数提高的要害,便是了解函数声明与函数表达式之间的差异。履行下面的代码可能会呈现意想不到的成果:

不要这样写代码

上面代码的原意是想在 condition 为 true 时,运用 sayHi() 的界说,不然,运用别的一个界说。实际上,在 ECMAScript 中归于无效语法,JavaScript 引擎会测验批改过错,将其转化成为合理的状况。可是不同的浏览器对批改的做法并不共同。大多数浏览器会回来第二个声明,而疏忽 condition ,Firefox 会在 condition 为 true 时回来第一个声明。因而这种方法便是不靠谱的,不要这样运用。能够运用函数表达式来处理上面的问题。

运用函数表达式界说

能够创立函数再赋值给变量,也就能够把函数作为其他函数的回来值。例:

函数作为其他函数的回来值