首页 > 其他分享 >Function

Function

时间:2022-11-20 20:26:20浏览次数:27  
标签:Function function 函数 num2 var document num1

第五章 函数

内容回顾

  • 使用while嵌套实现表格效果
  • 使用for循环实现九九乘法表

本章内容

  • 函数的定义
  • 函数的5种方式
  • 网页中事件和函数的应用
  • CEMAScript 6(js6)中的函数定义

第一节 函数的基本结构

函数:是指实现了特定功能的代码块,能够被反复调用。

语法:

function 函数(参数1, 参数2,参数3,...)
{
    //函数功能代码;
    return 函数返回值;
}

说明:

function:用于定义函数的关键字

函数名:使用者自己定义,命名规则:字母,数字,下划线,$,数字不能开头。小驼峰的命名方式,例如:getNum()

参数列表:在函数名后面的小括号中定义参数列表,参数可多可少,也可以没有

函数功能代码:当前函数要实现的特定功能,是函数的核心内容

return返回值:在函数执行完成之后,可以通过return关键字,返回函数处理的结果。可以省略。

函数的使用:如果一个功能代码,需要被反复使用,此时建议将该代码定义为函数。另外一种情况,如果在一个处理过程中,部分代码太多,此时可以将此部分代码封装成函数,优化代码结构。

1.无参无返回值的函数

<script type="text/javascript">
    //定义函数:无参数,无返回值
    function sayHello()
{
    alert("你好,Javascript");
}
//调用函数
sayHello();
</script>    

2.无参有返回值函数

//获取1-100的随机数
   //无参数,有返回值的函数
	function getNum()
{
    //生成1-100的随机数
    var r =parseInt(Math.random()*100+1);
    //设置函数的返回值
    return r;
}
//调用函数,获取三个随机数
var num1 =getNum();
var num2 =getNum();
var num3 =getNum();
//提示信息
alert(num1+" "+num2+" "+num3);

注意:如果函数的最后没有使用return返回结果,此时如果使用变量接受函数,则接受的数据为undefined。

//获取1-100的随机数
	//午餐数据,有返回值的函数
	function getNum()
{
    //生成1-100的随机数
    var r = parseInt(math.random()*100+1);
    //设置函数的返回值
    //return r;
}
//调用函数,获取三个随机数
var num1 = getNum();
var num2 = getNum();
var num3 = getNum();
//提示信息
alert(num1+" "+num2+" "+num3);

3.有参数无返回值的函数

//定义函数
//row:形式参数,等价于函数中的一个变量
function showSanJiao(row){
    //输出三角形
    for(var i=1;i<=row;i++){
        for(var j=1;j<=i;j++){
            console.log("*");
        }
        console.log("\n");
    }
}
//调用函数
//3:实际参数
showSanJiao(3);

统计任意数值区间的和

<script type="text/javascript">
    //求和
    function sum(start,end)
{
    var he=0;
    for(var i=start;i<=end;i++)
        {
            he+=i;
        }
    document.write(start+"-"+end+"的和:"+he);
}
//调用
sum(1,50);
document.write("<br>");
sum(2,51);
</script>

4.有参数有返回值的函数

<script type="text/javascript">
    //求和
    function sum(start,end)
{
    var he=0;
    for(var i=start;i<=end;i++){
        he+=i;
    }
    return he;
}
var res=sum(1,50);
alert(sum);
</script>

输入月份,返回该月份的天数

<script type="text/javascript">
    function  getDay(month)
{
    

    var day=0;
	//1-12

	switch(month)
    {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            day=31;
            break;
        case 2:
        case 6:
        case 9:
        case 11:
            day=30;
            break;
        case 2:
            day=28;
            break;
        default:
            day="月份无效";
            break;
    }
    return day;
}
var m = parseInt(prompt("请输入月份:",""));
var res = getDay(m);
alert("天数:"+res);
</script>

4.1函数可以重复相同的代码

function cook(){
    console.log('酸辣土豆泥');
}
cook();

4.2 利用函数的参数实现函数重复不同的代码

function 函数名(形参1,形参2...){// 在声明函数的小括号里面是 形参 (形式上的参数)

}
函数名(实参1,实参2...);//在函数调用的小括号里面是实参(实际的参数)

//函数形参实参个数匹配
function getNum(num1,num2){
    console.log(num1+num2)
}
//1.如果实参的个数和形参的个数一致 则正常输出结果
getNum(1,2);
//2.如果实参的个数多于形参的个数  会取到形参的个数
getNum(1,2,3);
//3.如果实参的个数小于形参的个数  多于的形参定义为undefined  最终的结果就是 NaN
//形参可以看做是不用声明的变量 num2是一个变量但是没有接受值 结果就是undefined
getNum(1);//NaN
//建议 我们尽量让实参的个数和形参相匹配

形参和实参的个数

4.3 函数的返回值格式

function 函数名(){
    return; //需要返回的结果;
}
//函数名();
//(1) 函数只是实现某种功能,最终的结果需要返回给函数的调用者函数名()
//通过return 实现的
//(2)只要函数遇到return就把后面的结果 返回给函数的调用者  函数名()=rerurn后面的结果
function getResult(){
    return 666;
}
getResult(); //getReault( ) = 666
console.log(getResult());

第二节 网页中的事件和函数调用

事件:就是发生了一件事,通常我们会将事件和特定的方法绑定一起,当事件触发的时候,程序自动执行绑定的方法,以此完成特定的程序处理。这就是程序的事件驱动机制。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			function test(){
				alert("点到我了")
				//修改文档的背景
				document.bgColor="red";
			}
			//document:网页的内置对象
			//body: 对应于body标签的一个对象
			//style:网页元素的样式对象
			//backgroundColor:背景颜色样式属性
			function test2(){
				// document.body.style.backgroundColor="blue";
				if(document.body.style.backgroundColor=="blue"){
					document.body.style.backgroundColor="red";
				}else{
					document.body.style.backgroundColor="blue";
				}
			}
		</script>
	</head>
	<body>
	<input type="button" name="" id="" value="测试" onclick="test()" />
	<input type="button" name="" id="" value="改变" onclick="test2()" />
	</body>
</html>


计算器:

<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<meta http-equiv="X-UA-Compatible" content="ie=edge">
		<title></title>
		 <script src="function.js" type="text/javascript" charset="utf-8"></script>
		 <script type="text/javascript">
			//计算器
		 	function calc(n) {
				//通过document.getElementById("num1")获取id为num1的文本框元素
		 		var one = document.getElementById("num1");
				//获取num1文本框的数据值
		 		var num1 = Number(one.value);
				//获取id为num2的文本框元素
		 		var two = document.getElementById("num2");
				//获取文本框中的数据值
		 		var num2 = Number(two.value);
		 		switch (n) {
		 			case "+":
		 				var jg = num1 + num2;
		 				break;
		 			case "-":
		 				var jg = num1 - num2;
		 				break;
		 			case "*":
		 				var jg = num1 * num2;
		 				break;
		 			case "/":
		 				var jg = num1 / num2;
		 				break;
		 		}
				//将结果设置到id为res的文本框中
		 		document.getElementById("res").value=jg;
		 	}
		 </script>
		<style type="text/css">
			#d1
			{
			width:300px;
			height:200px;
			border:1px solid red;
			}
			/*定义类样式*/
			.c1
			{
			color:red;
			font-size:40px;
			background-color:blue;
			}
		</style>
	</head>
	<body>
		<table border="1" cellspacing="" cellpadding="" width="600">
			<caption>计算器</caption>
			<tr>
				<td>数字1</td>
				<td><input type="text" name="" id="num1" value="" /></td>
			</tr>
			<tr>
				<td>数字2</td>
				<td><input type="text" name="" id="num2" value="" /></td>
			</tr>
			<tr>
				<td>运算</td>
				<td>
					<input type="button" name="" id="" value="+" onclick="calc('+')"/>
					<input type="button" name="" id="" value="-" onclick="calc('-')"/>
					<input type="button" name="" id="" value="*" onclick="calc('*')"/>
					<input type="button" name="" id="" value="/" onclick="calc('/')"/>
				</td>
			</tr>
			<tr><td><input type="text" name="" id="res" value="" /></td>
			</tr>	
		</table>
	</body>
</html>

js代码访问html标签

<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<meta http-equiv="X-UA-Compatible" content="ie=edge">
		<title></title>
		 <script src="function.js" type="text/javascript" charset="utf-8"></script>
		 <script type="text/javascript">
			function setTxt()
			{
			//获取文本框元素
			var txtmz = document.getElementById("mingzi");
			txtmz.value="张三";
			}
			//获取表单元素的数据
			function getTxt(){
				var txtmz=document.getElementById("mingzi");
				alert(txtmz.value);
			}
			//设置非表单元素的内容
			function setDiv(){
			var div =document.getElementById("d1");
			div.innerHTML="我的测试";
			//设置元素的类样式
			div.className="c1";
			}
			function getDiv(){
				//获取元素的内容
				var div=document.getElementById("d1")
				alert(div.innerHTML);
			}
			
		 </script>
		<style type="text/css">
			#d1
			{
			width:300px;
			height:200px;
			border:1px solid red;
			}
			/*定义类样式*/
			.c1
			{
			color:red;
			font-size:40px;
			background-color:blue;
			}
		</style>
	</head>
	<body>
		<!--所有表单元素都有value属性  -->
		<input type="button" name="" id="mingzi" value="设置表单元素的数据" onclick="setTxt()"/>
		<input type="button" name="" id="" value="获取表单元素的数据" onclick="getTxt()"/><br/><br />
		<hr >
		<!-- 非表单元素通常没有value属性 -->
		<button type="button" onclick="setDiv()">设置非表单元素的内容</button>
		<button type="button" onclick="getDiv()">获取非表单元素的内容</button>
		<div id="d1"></div>
	</body>
</html>


通过js实现图片动画

<!DOCTYPE html>
<html>
	<head>
		<title> my page </title>
		<style type="text/css">
		</style>
		<script type="text/javascript">
			var index = 0;
			//上一张
			function prev() {
				index--;
				if (index == -1) {
					index = 9;
				}
				var url = "image/js" + index + ".gif";
				document.getElementById("lj").innerHTML = url;
				document.getElementById("tp").src = url;
			}
			//下一张
			function next() {
				index++;
				if (index == 10) {
					index = 0;
				}
				var url = "img/js" + index + ".jpeg";
				document.getElementById("lj").innerHTML = url;
				document.getElementById("tp").src = url;
			}
		</script>
		<style type="text/css">
			img {
				width: 100px;
				height: 100px;
			}
		</style>
	</head>
	<body>
		图片:<div id="lj"></div>
		<img src="img/js0.jpeg" id="tp" /><br />
		<input type="button" value="上一张" onclick="prev()" />
		<input type="button" value="下一张" onclick="next()" />
	</body>
</html>


小结:

//通过HTML元素,触发js函数的执行
<元素  事件名="函数名()"/>
    <input type="button" onclick="test()"/>
    <div id="d1" onclick="setDiv()"></div>
	<div id="d1" onm ouseover="setDiv()"></div>
onclick:单击事件
onmouseover:鼠标悬浮事件

//通过js访问HTML元素
1.表单元素
//获取表单元素数据
var b1 = document.getElementById("表单元素id").value;
//设置表单元素数据
document.getElementById("表单元素id").value="数据"

2.非表单元素
//获取非表单元素的内容
var nr=document.getElementById("非表单元素id").innerHTML;
//设置非表单元素的内容
document.getElementById("非表单元素id").innerHTML="数据";

3.通过js设置元素样式
//设置元素的行内样式
document.getElementById("元素id").style.color="字体颜色";
//设置元素的类样式
document.getElementById("元素id").className="类样式名";

第三节 箭头函数

箭头函数:类似于匿名函数,是在ECMAScript6中新增的函数写法

无参数无返回值的函数

var f=()=>{
    alert("你好");
}
f();

无参数有返回值的函数

var sjs = () =>{
    var r=parseInt(Math.random()*100+1);
    return r;
}
var r1 = sjs();
var r2 = sjs();
var r3 = sjs();
alert(r1+" "+r2+" "+r3);

有参数无返回值

var add =(num1,num2)=>{
    document.write("he:"+(num1+num2));
}
add(10,200);

有参数有返回值

//有参数,有返回值
/*var add = (num1,num2)=>{
var sum = num1+num2;
return sum;
}*/
//如果函数代码只有一行,并且需要返回,可以写成如下格式
var add = (num1,num2)=>num1+num2;
alert(add(1,2))


标签:Function,function,函数,num2,var,document,num1
From: https://www.cnblogs.com/zcf94264/p/16909395.html

相关文章