JS函数(一)基础,形参,实参,变量作用域

11 篇文章 0 订阅
10 篇文章 0 订阅

什么是函数

程序中专门保存一段可重用的代码片段的程序结构,再起一个名字。

函数(function)就是一组允许在你的代码里随时调用的语句。每个函数实际上是一个短小的脚本。

为什么要用函数

重用

函数对任何语言来说都是一个核心的概念。通过函数可以封装任意多条语句,而且可以在任何地方,任何时候调用执行。
如果你需要多次使用同一段代码的时候,可以把他们封装成一个函数。

什么时候用

只要一段代码可能被反复使用,都要先将这段代码保存在函数中。然后再反复使用函数

例子: 身信息登记

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script>
	//定义函数
		//function 函数名(形参列表){
		function say(name,id){
			//函数体; //封装的代码
			//alert参数,只有一个,显示警告框的信息;无返回值。
			alert("姓名"+name+",身份证号"+id)
		}
		
	//调用函数
//这个函数可以通过其函数名来调用,后面还要加上一对圆括号和参数(圆括号中的参数如果有多个,可以用逗号隔开)
	say("李雷",013);
	</script>
</body>
</html>

细分讲解

创建函数:
function 函数名(形参变量){
函数体;
封装的代码
}
调用函数:
函数名(实参变量);

形参变量:

(1). 什么是: 专门接收函数执行时必需的数据的变量(虽然没有var)
(2). 为什么: 有些函数执行时,必须传入必要的数据,才能正常执行!
(3). 何时: 今后,只要一个函数执行时,必须外界传入某些数据才能正常执行时,都要定义形参变量

实参变量:

(1)什么是:是在调用时传递给函数的参数,即传递给被调用函数的值。实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量
(2)为什么:有些函数执行时,必须传入必要的数据,才能正常执行!
(3)何时:有若干变量执行同一个函数时,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。

实参和形参的区别:

参数有形参(parameter)和实参(argument)的区别,形参相当于函数中定义的变量,实参是在运行时的函数调用时传入的参数。

形参就是函数声明时的变量,实参是我们调用该函数时传入的具体参数。

例子:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script>
		function a(s,d){
			var num=s * d;
			alert(num);
		}
		a(1,2);
	//声明函数a时,s,d就是形参。调用函数a(1,2)  1,2就是实参。
	</script>
</body>
</html>

创建函数

一。声明函数
function 函数名(形参){ }
最基础的创建方法,缺点:会被声明提前,打乱程序正常的执行顺序。
什么是声明提前:
在程序开始执行前, 程序会先将var声明的变量和function声明的函数,提前到当前作用域的顶部集中创建, 赋值留在原地.

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script>
	//代码是由上到下,从左到右的执行顺序,但是由于js的声明提前这些就边的混乱了
		alert(a); // 按照执行顺序这里应该是报错,但这里确实输出了function a(){ }
		alert(b); // 这里输出undefined,说明有但是在这一行前面明明没有变量 b
		function a(){ }
		var b = function c() {};//声明变量时,为变量赋值:
		alert(a); 
		alert(b); 
	</script>
</body>
</html>

二。 用赋值方式创建(函数表达式,又叫函数字面量):
var 函数名变量=function(形参变量列表){ 函数体; return 返回值 }
函数不会被声明提前,保证了程序的正常执行顺序。

 例子:
var fun=function(){ console.log(1) };
    fun();

三。用new 创建:
var 函数名=new Function(“形参1”,“形参2”,…,“函数体; return 返回值”)

var a = new Function('alert("你好");');

总结

function 函数名(){ … } //被声明提前

相当于var 函数名=function(){ … }

相当于var 函数名=new Function(…)
结论: function 底层等效于 new Function()
function的本质是创建一个函数对象

变量的作用域

变量的可访问范围
全局作用域:在函数外,使用var声明的变量是全局变量,在任何作用域下都可以访问它。
函数作用域:在函数以内,使用var声明的变量是局部变量,只能在当前的作用域下可以访问。
在函数中不加var声明的变量是全局变量。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值