JavaScript---函数

函数其实就是封装,把可以重复使用的代码放到函数中,如果需要多次使用同一段代码,就可以把封装成一个函数。这样的话,在你需要再次写这些代码的时候,你只需要调用一次函数就行了。

1.定函数的方式

使用字面量的形式定义函数

ECMAScript中的函数使用function关键字来声明,后面跟一组参数函数体
函数的基本语法如下:

function sum(num1, num2) {

		var num3 = num1 + num2;
		return num3;

}

这个函数的作用是把两个值加起来返回一个结果。函数必须通过调用才会执行,调用这个函数的代码如下:

var result = sum(5, 10);  //15

2. 使用函数表达式声明函数

使用Function构造函数声明函数

函数的返回值

下面这个函数在执行完return语句之后停止并立即退出。因此,位于return语句后面的任何代码永远都不会执行。例如:

function sum(num1, num2) {

		var num3 = num1 + num2;
		return num3;

      alert("hello world");  //永远不会执行

}

一个函数中可以有多个return语句,如下面的这个例子所示:

function max(num1, num2) {
	**加粗样式**  if(num1 > num2){
		return num1;
      }else{
		return num2;
      }
}

max()方法的作用是求两个数中最大值的。如果第一个数比第二个数大,返回第一个数;否则返回第二个数。代码中的两个分支都具有自己的return语句,分别用于返回最大值。

另外,return语句也可以不带任何返回值。在这种情况下,函数在停止执行后将返回undefined。这种方法一般用在需要提前停止函数执行而又不需要返回值的情况。

function max(num1, num2) {

			if(!(num1 && num2)){  //参数只要有一个为空,函数就什么也不做,直接返回

				return;

			}else if(num1 > num2){

				return num1;

		    }else{

				return num2;

		    }

		}

函数的参数

ECMAScript函数不介意传递进来多少参数,也不在乎传进来的参数是什么数据类型。也就是说,即便你定义的函数只接收2个参数,在调用这个函数的时候也未必一定要传递2个参数。可以传递1个、3个甚至不传递参数,而解析器永远不会有什么怨言

实际上,传递给函数的所有参数都被保存到了arguments对象中,arguments对象位于函数体内,与数组有点类似(但它并不是Array的实例),参数都被保存到了这个数组中

有的人可能会问了,既然所有传递进来的参数都被保存到arguments数组中了,那么在声明函数的时候还声明参数干什么?

其实声明形参只是为了方便在函数体中引用传递进来的实参,但这不是必需的,在声明函数时也可以不声明形参。

函数声明提升

console.log(abc)
var abc=[1,2,3]
///会打印出undefined

函数的作用域

变量的作用域范围可分为全局变量局部变量

全局变量:

在最外层声明的变量叫全局变量
在函数体内部,没有使用var关键字声明的变量也是全局变量

局部变量:

在函数体内部,使用var关键字声明的变量叫作局部变量

自执行函数

先前咱们写的函数只有在调动的时候才会执行,如果像下面这样写的话,代码执行到这一行的时候,函数会自己执行(或者说自己调用自己)。

(function sum(a){

        		console.log(a);

})("abc")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值