网页设计基础第四十讲:理解JavaScript自定义函数

1,311 阅读6分钟

知识讲解

函数的语法结构

函数是被设计为执行特定任务的代码块,会在某代码调用它时被执行。通过函数可以方便代码的重复调用,分块和简化。

JavaScript定义函数有两种方式:一种方式是显示定义函数;一种方式是匿名定义函数。

函数的定义

函数使得function关键字进行定义,它的语法为

funciton <函数名> ( [参数列表] ) {
   //代码块
  
  [return 返回值;]
}

其中

函数名:可以把函数当成一个变量,函数名就是变量名,通过这个名称可以实现函数的调用

参数列表:也称为形式参数(形参),即函数在运行时需要外部传入的数据

代码块:函数中封装的代码

return:返回数据,return后为要返回给调用者的数据,如果没有return或是return后没有数据,则返回undefined。同时在函数中return也做为流程控制关键字,当在函数中运行到return时,函数结果,之后的代码不会再执行。

函数的调用

通过函数的名称可以调用指定的函数

语法

[let result = ] 函数名 (  [参数列表] ) ;

如果函数有返回值,可以使用变量接收返回的数据

调用时的参数称为实际参数,简称为实参,即调用函数时传入的实际的数据。

函数在调用时必须加上小括号。

函数的示例

function addNumbers(a, b) { 
return a + b; } 
let sum = addNumbers(5, 3); // sum 的值为 8

无参函数

1、无参函数的定义

无参函数是指没有声明形参的函数。

示例

function welcome(){
 console.log('Hello JavaSript');
}

2、无参函数的调用

在调用函数时必须加上小括号,这也是与访问变量的值的区别。

语法

函数名(  );

示例

1、在事件函数中调用无参函数

第一个数:<input type="number" name="num1">
第二个数:<input type="number" name = "num2">
<button type="button">计算</button>


//加法运算
function add(){
   let num1 = document.querySelector('[name=num1]').value;
   let num2 = document.querySelector('[name=num2]').value;
   num1 = Number(num1);
   num2 = Number(num2);
   console.log('%f + %f = %f' , num1,num2, num1 + num2);
}



document.querySelector('button').onclick = function(){
         add();  //在事件函数中调用无参方法实现加法运算
}

2、事件直接绑定函数

这种推荐使用的方式,通过绑定单独定义的函数可以重用代码。比如在数据表格每行的删除按钮

document.querySelector('button').onclick = add ; 

在以上示例中,事件在绑定函数时只使得了函数的名称,并没有加上小括号,在调用函数时,如果加上了小括号,是表示立即执行的意思,没有加小括号则是把函数的引用赋值给元素的事件。

有参函数

当一个函数要完成功能需要外部传入的数据时,函数必须定义参数

语法

function 函数名 ( 参数1[,参数2......] ){
    //函数代码块
}

其中的参数1,参数2等称为形式参数,简称形参,相当于函数中所定义的变量,多个参数之间使用“,”分隔。

示例

定义一个函数,计算传入的两个参数的和。

function add(num1,num2){
     let num3 = num1 + num2;
    console.log(num3);
}

有参函数调用

在调用有参函数的时候需要传入参数,调用时传入的参数称为实际参数,简称形参。多个实参之间使用“,”分隔

add(10,20); //调用函数,并传入数据

let num1 = 10,num2 = 20;
add(num1,num2); //调用函数,并传入变量的值
有参数函数的调用流程

1、定义函数,在内存中开辟空间,在函数空间中为形参开辟空间

2、调用函数,通过函数名获得函数的地址

3、把实参中的数据复制到形参空间中

4、执行函数中的代码

5、函数中代码执行完成后回到当前代码的空间。

函数调用的特点

1、实参与形参的位置一一对应,第一个实参的值会传递给第一个形参,第二个实参的值会传递给第二个形参。

2、实参可以少于形参,无实参对应的形参的值为undefined

3、实参可以多于形参,多余的实参会被忽略

4、实参必须按顺序传入,不能使用“,”跳过。

实验实训

实验一:闰年判断

任务目标

1、掌握逻辑运算符的使用

2、掌握无参函数的定义和调用

任务要求

1、创建项目Javascript-ch08,在项目中添加leap-year.html和leap-year.js

2、在网页的表单中输入四位数的年份,点击按钮,在表单的下方显示结果,如果是闰年,显示“xxxx年是闰年”,否则显示“xxxx不是闰年”

3、闰年的判断条件为:能被4整除,但不能被100整除,或者能被400整除的年份为闰年

4、要求定义无参数函数实现闰年的判断,按钮的单击事件绑定此函数

实验二:计算圆的面积和周长

圆周率的值是:π ≈ 3.14

π=Math.PI
任务目标

1、掌握有参函数的定义

2、掌握有参函数的调用

任务要求

1、在项目中添加circle.html和circle.js

2、定义一个函数calArea,用于计算圆的面积,函数接收圆的半径,计算后在页面中输出结果

3、定义事件函数calc,在函数中获取页面中输入的圆的半径,分别调用面积和周长的函数,传入半径。

4、在页面中添加一个输入框和按钮,在输入框中输入圆的半径,按钮绑定事件函数,点击按钮后在页面中输出计算结果

实验三:小区物业管理费的计算

任务需求

1、在项目javascript-ch07中,定义property.html和property.js,以实现小区物业管理费的计算

2、物业费的计算公式是房屋面积(平方米)* 单价 * 月数 ,此练习默认单价为1.3元

3、定义函数接收房屋页面和月数,返回计算后的应收物业费。

4、定义单击事件函数,在函数中获取页面中的房屋面积和月数。调用计算函数并接收返回的应收物业费,在页面中显示物业费

4、在页面中使用输入框输入房屋面积和月数,“计算”按钮绑定事件函数,点击按钮实现计算功能。

任务目标

1、掌握函数的定义

2、掌握函数的调用

3、掌握函数返回值的使用

任务实现

1、在项目Javascript-ch07中添加property.html

2、在页面中添加两个输入框和按钮,显示物业费

3、在js目录中添加calculator.js,在页面中引入此js

4、在js中定义计算物业费的函数calProperty,函数接收房屋面积和月数做为参数,在函数中计算物业费,并将结果作为返回值

5、定义事件函数calculate,在函数中获取页面中的房屋面积和月数,调用计算物业费的函数calProperty,传入相应的参数值并接收返回的应收物业费,在页面中显示物业费

6、获取按钮元素,单击事件绑定calculate函数

实验四:九九乘法口诀表

编写Js程序实现奇数行带浅灰背景色,粗体的九九乘法口诀表

image.png