深入了解JavaScript函数:定义、使用与优化

发表时间: 2023-07-16 09:51


在JavaScript中,使用函数实现代码重用,而且函数本身就是一个对象。

本文主要介绍JavaScript函数的使用。

1、JavaScript函数的主要知识点

JavaScript函数主要有如下的知识点:

(1)使用function关键字来定义函数;

(2)可以定义匿名函数;

(3)可以通过创建Function对象,定义函数;

(4)可以在函数内部定义局部函数;

(5)在单个<script>内部,函数可以先使用后定义;

(6)调用函数时,参数采用传值的方式。

2、函数的普通定义方式

下面的func001.html文件,实现了函数的普通定义方式:

<!DOCTYPE html><html><head><title>func001</title><meta charset="utf-8" /></head><body><script>function sayHello(){alert("Hello, world!");}sayHello();</script></body></html>

使用浏览器打开该文件,显示如下:

说明:func001.html文件定义了函数sayHello,紧接着调用该函数。

3、定义匿名函数

下面的func002.html文件,定义了匿名函数:

<!DOCTYPE html><html><head><title>func002</title><meta charset="utf-8" /></head><body><script>var theFunc = function(){alert("This is an anonymous function!");};theFunc();</script></body></html>

使用浏览器打开该文件,显示如下:

说明:func002.html文件定义了一个匿名函数,并赋值给theFunc变量,然后以函数的形式调用theFunc变量。

4、通过创建Function对象来定义函数

下面的func003.html文件通过创建Function对象来定义函数:

<!DOCTYPE html><html><head><title>func003</title><meta charset="utf-8" /></head><body><script>var theFunc = new Function('alert("This is an Function object!");');theFunc();</script></body></html>

使用浏览器打开该文件,显示如下:

说明:创建Function对象时,最后一个参数是函数体的代码,前面的参数是传给新建立函数的参数。

这种方式非常不直观,不建议使用。

5、在函数内部建立局部函数

下面的func004.html文件建立了局部函数:

<!DOCTYPE html><html><head><title>func004</title><meta charset="utf-8" /></head><body><script>function sayHello(){function subFunc1(){return "subFunc1 is called.\n";}function subFunc2(){return "subFunc2 is called.\n";}var theString = "Hello, world!\n" + subFunc1() + subFunc2();alert(theString);}sayHello();</script></body></html>

使用浏览器打开该文件,显示如下:

说明:这里建立的局部函数subFunc1和subFunc2,只能在sayHello函数内部可见。

6、在单个<script>内部,函数可以先使用后定义

下面的func005.html文件,先调用函数,然后才定义:

<!DOCTYPE html><html><head><title>func005</title><meta charset="utf-8" /></head><body><script>sayHello();function sayHello(){alert("Hello, world!");}</script></body></html>

使用浏览器打开该文件,显示如下:

说明:在单个<script>内部定义的函数,在浏览器加载时,函数定义总会上浮到<script>顶部,因此可以先调用,后定义。

如果跨<script>,则不能适用,因为函数定义上浮,只能在<script>内部进行。

7、调用函数时,参数采用传值的方式

现在的编程语言,例如C语言、Java语言都采用这条规则,这里就不举例了。