JS函数初步

JS函数的初步

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>JS函数初步</title>
	</head>
	<body>
		<script type="text/javascript">
			/*
				1.JS中的函数:
					等同于java语言中的方法,函数也是一段可以被重复利用的代码片段。
					函数一般都可以完成某个特定的功能。
				
				2.回顾java中的方法:
					[修饰符列表] 返回值类型 方法名(形式参数列表){
						方法体;
					}
				
				3.JS中的变量是一种弱类型的,那么函数应该怎么定义呢?
					语法格式:
						第一种方式:
							function 函数名(形式参数列表){
								函数体
							}
						第二种方式:
							函数名 = function(形式参数){
								函数体
							}
						JS中的函数不需要指定返回值类型。什么类型都行。
			*/
		   function sum(a,b){
			   //a,b 都是局部变量.他们都是形参(a,b 都是变量名,变量名随意。)
			   alert(a + b);
		   }
		   
		   //函数必须调用才能执行/
		   //sum(10, 20);
		   
		   //定义函数sayHello
		   sayHello = function(username){
			   alert("hello" + username);
		   }
		   
		   //调用函数
		   //sayHello("zhangsan");
		   
		</script>
		
		<input type="button" value="hello" onclick="sayHello('javk')" />
		<input type="button" value="计算10和20的和" onclick="sum(10,20)" />
	</body>
</html>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>JS函数初步</title>
	</head>
	<body>
		<script type="text/javascript">
			/*
				java中的方法有重载机制,JS的函数能重载吗?
					JS当中的函数在调用的时候,参加的类型没有限制,并且参数的个数也没有限制,JS就是这么随意(弱类型)。
				重载的含义:
					方法名或函数名一样,形参不同(个数、类型、顺序)
			*/
		   function sum(a,b){
			   return a + b;
		   }
		   
		   //调出函数sum
		   var retValue = sum(1,2);
		   alert(retValue);
		   
		   var retValue2 = sum('jack'); // jack赋值给a变量,b变量没有赋值系统默认赋值undefined
		   alert(retValue2); //jackundefined
		   
		   var retValue3 = sum();
		   alert(retValue3);// NaN (NaN是一个具体存在的值,该值表示不是数字。)
		   
		   var retValue4 = sum(1,2,3);
		   alert(retValue4);// 3
		   
		   // 在JS当中,函数的名字不能重复,当函数名重复的时候,后声明的函数会将之前的同名函数覆盖.
		   function test1(username){
			   alert('test1')
		   }
		   
		   function test1(){
			   alert('test test')
		   }
		   
		   test1("list");//执行第二个
		   
		</script>
	</body>
</html>

JS的局部变量和全局变量

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>JS的局部变亮和全局变量</title>
	</head>
	<body>
		<script type="text/javascript">
			/*
				全局变量:
					在函数体之外声明的变量属于全局变量,全局变量的生命周期是:
						浏览器打开时声明,浏览器关闭时销毁,尽量少用。因为全局变量会一直在浏览器的内存当中,耗费内存空间。
						能使用局部变量尽量使用局部变量。
				局部变量:
					在函数体当中声明的变量,包括一个函数的形参都属于局部变量,
					局部变量的声明周期是:函数开始执行时局部变量的内存空间开辟,函数结束之后,局部变量内存空间释放。
					局部变量生命周期较短。
			*/
		   var i = 100;
		   function accessI(){
				//访问的是全局变量
			   alert("i = " + i);
		   }
		   accessI();
		   
		   //全局变量
		   var username = "jack";
		   function accessusername(){
			   //局部变量
			   var username="lisi";
			   //就近原则,访问局部变量
			   alert("username = " + username)
		   }
		   //调用函数
		   accessusername();
		   //访问全局变量
		   alert("username = " + username);
		   
		   function accessAge(){
			   var age = 20;
			   alert("年龄 = " + age);
		   }
		   accessAge();
		   //报错
		   //alert("age=" + age);
		   
		   //以下语法是很奇怪的
		   function myfunction(){
			   //在这里没有使用var的时候,这个变量无论在哪里声明都是全局变量
			   myname = "asdf";
		   }
		   //访问函数
		   myfunction();
		   alert("myname = " + myname); //myname = asdf
		   
		</script>
	</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值