函数是被设计为执行特定任务的代码块。
函数会在某代码调用它时被执行。
为何使用函数?
能够对代码进行复用:只要定义一次代码,就可以多次使用它。
能够多次向同一函数传递不同的参数,以产生不同的结果。
语法:
function 函数名([参数列表]){
// 重复执行的代码块
[return 返回值;]
//return 结束函数的执行;
//返回值只能返回一个数据 如果不写,返回的是undefined
}
当函数内的语句在执行时,一旦遇到return时,函数就会立即执行完毕,并将结果返回。所以,我们可以在函数内通过条件判断和循环来实现比较复杂的逻辑。
下面是2个比较简单的列子:
将一个正整数分解质因数。
function num4() {
var num = parseInt(prompt("请输入一个正整数:"));
document.write(num + '=');
for (var i = 2; i <= num; i++) {
if (num / i == 1) {
document.write(i + '\t');
} else {
while (num % i == 0) {
num = num / i;
document.write(i + '*');
}
}
}
}
输入两个正整数m和n,求其最大公约数和最小公倍数。
function num5() {
var m = parseInt(prompt("请输入一个数:"));
var n = parseInt(prompt("请输入一个数:"));
for (var i = 1; i <= m * n; i++) {
if (i % m == 0 && i % n == 0) {
document.write('最小公倍数:' + i);
break;
}
}
for (var j = m; j >= 1; j--) {
if (m % j == 0 && n % j == 0) {
document.write('最大公约数:' + j);
break;
}
}
}
注意:我们要小心return语句
因为JavaScript引擎有一个在行末自动添加分号的机制,这可能让你栽到return语句的一个大坑:
当你的代码这样写的生活
function fun() {
return
{ name: 'fun' };
}
它实际上是这样执行的
function fun() {
return; // 自动添加了分号
{ name: 'fun' }; // 所以这行语句就不会执行
}
所以当我们使用return的时候要注意哦;