知识讲解
函数的语法结构
函数是被设计为执行特定任务的代码块,会在某代码调用它时被执行。通过函数可以方便代码的重复调用,分块和简化。
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程序实现奇数行带浅灰背景色,粗体的九九乘法口诀表