7、JavaScript函数

函数定义

函数:就是封装了一段 可被重复调用执行的代码块儿

函数的封装:把一个或多个功能通过函数的方式封装起来 ,对外只提供一个简单的函数接口

**为什么需要函数?**可以实现代码复用,提高开发效率

声明/调用函数

函数两种声明方式:

无参数:

//方式一:
 function 函数名(){
      函数体
   }

//方式二:
var 变量名 = function () {}//匿名函数

//调用函数
  函数名();

有参数

//声明函数:
function 函数名(参数){
		函数体
        }

//调用函数:
	函数名(参数);

函数可以调用另外一个函数

具名函数/匿名函数

//具名函数
function foo(){
  //函数执行语句
}
foo(); //调用

//匿名函数
let bar = function (){
  //函数执行语句
}
//这种函数又称为函数表达式,本质上同普通函数没有区别
	//函数也是【数据】
	//把函数赋值给变量
	//匿名函数就是不写名字的函数

普通函数的声明与调用无顺序限制,推荐做法先声明再调用
函数表达式必须要先声明再调用

立即执行函数IFEE

//方式一
(function (){ console.log("123")} )();//括号在外

//方式二
(function (){ console.log("123")}());//括号在内

注意:

作用:防止变量污染(知道就行,以后遇到使用场景自然就明白了)

注意: 多个立即执行函数要用 ; 隔开,要不然会报错

函数的命名规范

  • 和变量命名基本一致
  • 推荐驼峰命名法
  • 推荐使用英文动词

形参和实参的匹配问题:

//函数形参实参个数匹配 

function getSum(num1 ,num2){  
	console.log(num1+num2); 
}

1、如果实参个数和形参个数一致 则正常输出结果 getSum(1,2);

2、如果实参个数多于形参个数 会取到形参的个数 getSum(1,2,3);

3、如果实参的个数小于形参的个数

  • 多余的形参定义为undefined 最终结果就是NaN

  • 形参可以看作是不用声明的变量

  • num2是一个变量但是没有接受值 结果就是undefined

  • getSum(1);

函数的返回 return:

函数的返回值格式

function 函数名 (){
  return 需要返回的结果;
 } 
函数名();

1、我们函数只是实现某种功能,最终的结果需要返回给函数的调用这函数名() 通过return实现的

2、只要函数遇到return 就把后面的结果返回给函数的调用者 函数名()=return后面的结果

3、代码验证

function getResult(){ 
    return 666; 
} 
getResult(); //getResult () = 666    console.log(getResult());

相当于赋值给函数调用

实际开发经常用变量接收函数的返回值

//在我们实际开发里面,我们经常用一个变量来接受 函数的返回结果 
var re = getArrMax([5,2,99,101,67,77]); 
console.log(re);

return后面的代码永远不会执行,有返回值返回正常,没有return返回undefined

return特点

​ 1、可以都直接consloe.log打印出来

​ 2、可以alert弹框出来

​ 3、可以声明变量 var s = add() 保存在变量中

​ 4、函数执行完return后停止并且立即退出,后面的脚本不再执行

1.我们为什么需要函数有返回值

  • 我们有时候需要的是这个函数执行完后的结果

2.函数有返回值用那个关键字? 有什么注意事项呢?

  • return后面不接数据或者函数内不写return,函数的返回值是undefined

  • return能立即结束当前函数

break 、continue、 return区别

  • break:结束当前的循环体(如 for、while)

  • continue:跳出本次循环,继续执行下次循环(如 for、while)

  • return:不仅可以推出循环,还能返回return语句中的值,同时还可以结束当前函数体内的代码,只能返回一个值,如果用逗号分隔,则取最后一个

arguments

  • 函数的内部所有的参数都会形成一个数组,arguments就是用来访问这个数组的

  • 不确定有多少个参数传递的时候 使用arguments获取

  • arguments的展示形式是一个伪数组,因此可以进行遍历

严格模式

  • 在严格模式下,传递的参数不能被arguments修改,而非严格模式下可以

  • arguments[0]//中括号内的索引从0开始的正整数

arguments伪数组特性

arguments对象,

​ 1、只是与数组类似,并不是array的实例

​ 2、按索引方式存储数据,[]语法访问它的每一个元素

​ 3、具有length属性,可以使用length属性确定传递参数的个数

​ 4、不具有push(),pop()等方法

求任意一组数的平均值

//求任意一组数的平均值
function getAvg(){
    var sum = 0 ;
	for(var i = 0 ; arguments.length ; i++){
 		sum +=arguments[i];
 		}  
	 return sum / arguments.length;  
}
getAvg();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值