函数的定义
函数的一段JavaScript的代码,定义一次却可以执行多次,提高了代码的复用性
定义函数的方式
函数的声明方式
函数在声明的时候并不会执行,必须要调用这个函数
function 函数名(){
函数体
}
function fun(){
console.log("关注我!评论我!")
}
fun();/*输出结果为关注我!评论我!*/
字面量方式
var 函数名称 = function(){
函数体
}
var fun1 = function(){
console.log("关注我!评论我!")
}
fun1();/*输出结果为关注我!评论我!*/
函数的例子
我们来做一个输出0~100之间的所有奇数的函数吧
var fun = function(){ //定义一个函数
for(var i = 0;i<=100;i++){
if(i%2 != 0){ //判断i是否为奇数
console.log(i);
}
}
};
fun(); //函数的执行
函数中的参数
函数的参数就相当于在函数中使用的变量,JavaScript中的函数定义并未制定函数参数的类型所以JavaScript中的数据类型都可以当作函数的参数,函数调用时也未对传入的参数做任何类型的类型检查。并且在函数中定义的变量只能在函数中使用
形参 定义函数时给定的参数
行参 调用函数时使用的参数
一般来说的话形参与实参的个数是相同的,但是在JavaScript中并不强求这一点
所以就会出现以下三种情况:
当形参与实参的个数相同时,此时一一对应
当形参大于实参的个数时,此时多了形参,则会输出undefined。
当形参小于实参的个数时,此时以形参为准,有几个形参输出几个。
函数中arguments
arguments是一个对应于传递给函数的参数的类数组对象。arguments对象是所有函数(箭头函数除外)中都可用的局部变量。你可以通过arguments对象在函数中引用函数中的所有参数。arguments包含传递给函数的每个参数,第一个参数在索引0处。
function sum(){
var count = 0; //定义一个变量来计算所有数字的和
for(var i = 0;i < arguments.length;i++){ //遍历出arguments中的数字
count += arguments[i];
console.log("这次所有参数的和是:" + count);
}
};
sum(1,2,3,55,4,5,5);//调用sum函数
函数中的return
函数的关键字,只能存在与函数之内。从字面上来理解就是返回值。它有着两个作用,一个是返回当前函数的值,一个是中止函数的执行。(我只是简单提一下return,说说自己对return的理解,若有不当,请博友们评论告知),上代码大家看吧。
function fn (){
var count = 0;
for(var i = 0;i<arguments.length;i++){
count += arguments[i];
}
return count;
}
console.log(fn(1,2,3,4,5)); //输出结果为15
上面的代码写的是一个求和的函数,通过arguments这个关键字来获取用户所输入的值,并且我们通过return这个关键将count返回出来了。
function fn (){
var count = 0;
for(var i = 0;i<arguments.length;i++){
count += arguments[i];
}
}
console.log(fn(1,2,3,4,5)); //输出结果为undefined
还是之前的代码,这次我不加return,此时的输出结果为undefined。为什么是undefined,以下是我自己的理解:
通过function我们创建了一个函数,并且在堆内存开辟了一个空间,当我们这个函数执行过后,这个空间就会被销毁。此时我们再想拿到函数里面的内容是不行的,所以是undefined。但是通过return关键字可以将我们想要的东西返回出来。这就是return的作用。
return可以中止函数的执行,上代码。
function func1(){
var a = 1;
while (true){
return a;
}
};
alert(func1());
我们可以看到在上面代码中,我写了一个死循环。然后我在alert中执行了这个函数。倘若没有这个return语句的话,那么浏览器就会卡死。望小伙伴们不要轻易尝试死循环,我的电脑比较差,动不动带崩哈哈哈。言归正传,但是我写了return这个关键字的话,浏览器只会弹出一次1;通过这个代码我们可以知道,return这个关键字可以中止函数的执行。