函数
函数:把一堆重复的代码封装,在需要的时候直接调用即可 函
函数的作用:代码的重(chong)用
函数定义
语法:
function 函数名(){
函数体(一堆重复的代码)
}
函数的调用
函数名();
函数的注意思点
函数需要先定义,后调用
函数命名要遵循驼峰命名法
函数一旦重名,后面的函数会把前面的函数覆盖
ctrl+鼠标左键----->转到函数定义
一个函数最好就一个功能
函数参数:
在函数定义的时候,函数名字后面的小括号里的变量就是参数,目的是函数在调用的时候,用户传进来的值操作
此时函数定义的时候后面的小括号里的变量叫参数;写了两个变量,就有两个参数,
在函数调用的时候,按照提示的方式,给变量赋值—>就叫传值,把这个值就传到了变量(参数)中
形参:函数在定义的时候小括号里的变量叫形参
实参:函数在调用的时候小括号里传入的值叫实参,实参可以是变量也可以是值
函数的方式计算两个数值的和:
function consoleSum(x,y){//定义函数
var sum=x+y;//计算和
console.log(sum);//输出和
}
consoleSum(200,360);
函数调用
var num1=parseInt(prompt("输入第一个数字"));
var num2=parseInt(prompt("输入第二个数字"));
consoleSum(num1, num2);
函数的返回值
set:设置
get:获取
函数的返回值:
在函数内部有return关键字,并且在关键字后面有内容,这个内容被反回了;
当函数调用之后,需要这个返回值,那吗就定义变量接收,即可;
如果一个函数中有return,那么这个函数就有返回值;
如果一个函数中没有return,那么这个函数就没有返回值;
如果一个函数中没有明确的返回值,那么调用的时候接收了,结果就是undefined(没有明确返回值:函数中没有return或函数中有return,但return后面内有任何内容);
函数没有返回值,但在调用的时候接受了,那么姐夫哦就是undefined;
变量申明了,没有赋值,结果也是undefined;
如果一个函数有参数,那么是有参数的函数;
如果一个函数无参数,那么是无参数的函数;
形参和实参的个数可以不一致;
return后面的代码不执行;
//定义函数:有参数有返回值的函数
function getSum(x,y){
return x+y;//把和返回
}
//函数调用
var result=getSum(10,20);
console.log(result+10);
案例
判断一个数是否是素数(质数)
function prime(n) {
var a = 0;
for (var i = 2; i < n; i++) {
if (n % i == 0) {//余数是0则不是素数
a=1;
}
}
if (a == 1 || n < 2) {
return (n + "不是素数");
}
return (n + "是素数");
}
var result = prime(parseInt(prompt("请输入数字")));
console.log(result);
注意问题
- 函数外面的变量名如果和函数定义的形参的变量名一样,但它们其实不是同一个变量
- 函数里面可以调用其他函数
arguments
定义
arguments当数组使用,是个伪数组
function f1(){
//获取的是函数在调用的时候,传入了几个参数
console.log(arguments.length);
//使用arguments对象可以获取传入的的每个参数得值
console.log(arguments);
}
函数的其他定义方式
命名函数:函数如果有名字,就是命名函数
匿名函数:函数如果没有民资,就是匿名函数
函数也是一种类型:是function类型
函数可以作为参数使用,如果一个函数作为一个参数,那吗我们说这个参数(函数)可以叫做回调函数,只要看到函数作为参数使用了,那就是回调函数;
函数可以作为返回值使用;
- 函数声明–函数定义
function 函数名(){
函数体
}
2.函数逇另一种定义方式
函数表达式:把一个函数给一个变量,此时形成函数表达式
var 变量=匿名函数
例子:
var f1=function(){
console.log("不好")
};
f1();
如果是函数表达式,那吗此时前面的变量中存储的就是一个函数,而这个变量就相当于是一个函数,就可以直接加小括号调用
函数的自调用:
var f1 = function () {
console.log("你好");
};
//函数的自调用,没有名字,调用---声明的同时,直接调用,一次性的
(function () {
console.log("你好");
})();