五天学完javaScript基础学习笔记day04

javaScript基础


day04


javaScript中的函数

为什么需要函数

函数:
function ,是被设计为执行特定任务的代码块
函数优势
有利于简化代码 方便复用,提高开发效率


函数的使用

函数的声明

function 函数名(参数) {
    
    
    函数体
}


函数使用

函数名(参数); // 可以多次调用

案例:

  function getData(){
    
       // 无参函数
      document.write('函数的使用')
  }
  getDta() // 函数的调用

   		// 利用函数求两个数的和,<br />
		<script>
			function getSum(num1,num2){
    
    
				result = num1+num2
				document.write(result)
			}
			getSum(5,8)
			
		</script>



		// 封装一个函数 求1--100 的累加和,<br />
		
		<script>
			function getSum100(){
    
    
				let sum=0;
				for (let i=1;i<=100;i++){
    
    
					sum=sum+i;
				}
				document.write(sum)
			}
			getSum100()
			
		</script>


函数的传参

带有参数的函数
语法:

function 函数名(参数以,参数二,参数三------参数n){
    
    
	函数体
}

// 调用函数传参
函数名(参数1,参数2参数n)

案例:

   		// 封装一个函数 求两个数站之间的和
   	
   	<script>
   		let s=0
   		function GetSum(start,end){
    
    
   			for (let i=start;i<=end;i++){
    
    
   				s+=i;
   			}
   			document.write(s)
   		}
   		GetSum(5,30)


		 // 封装一个函数 求一个数组内数据的和
		 <script>	 
			 function getSumArr(array){
    
    
				 let s=0;
				 for (let i=0;i<array.length;i++){
    
    
					s+=array[i] 
				 }
				 document.write(s)
			 } 
			 getSumArr([10,20,30,55])
		 </script>

函数返回值

函数返回值用return 返回数据
return 返回数据
return 后面的数据不需要换行
return 换行之后的语句不会被执行 有退出
函数内只能出现一次return
函数默认无返回值 默认返回Undifind
函数可以没有return

		// 函数返回值<br />
		<script>
			
			function fn(){
    
    
				return 20;
			}
			let result = fn() //  当函数名比较长的时候可以声明一个变量来接受函数
			document.write(fn()+'<br>')
			document.write(result)
		</script>
		

		// 求数组中的最大值
		<script>
			
			function getMax(arry){
    
    
				let max=arry[0]
				for (let i =1;i<arry.length;i++){
    
    
					if(max<arry[i]){
    
    
						max=arry[i]
					}
				}
				return max;
			}
			let Max=getMax([10,20,30,50,70,40,15])
			document.write(Max)
			
		</script>

return 只能返回一个值,需要返回多个值需要将数据存入数组


		// 求两数的和与差
		<script>
			function getHeAndCha(x,y){
    
    
				he = x+y;
				cha =x-y;
				let arr=[he,cha]
				return arr;
			}
			let hc=getHeAndCha(10,15)
			document.write(`和为${
      
      hc[0]} 差为${
      
      hc[1]}`)
		</script>

//求数组内得最大值和最小值

		<script>
			function getMaxAndMin(array1){
    
    
				let max=array1[0]
				let min=array1[0]
				for (let i=1;i<array1.length;i++){
    
    
					if(max<array1[i]){
    
    
						max=array1[i]
					}
					if(min>array1[i]){
    
    
						min=array1[i]
					}
				}
				return [max,min]
			}
			let values=getMaxAndMin([10,20,15,30,5,25,70,50,60])
			document.write(`最大值:${
      
      values[0]} 最小值:${
      
      values[1]}`)
		</script>

		// 比较两个数得到大小
		<script>
			let num1 = +prompt('请输入第一个数')
			let num2 = +prompt('请输入第二个数')
			function getBig(x,y){
    
    
				let re=x>y?x:y
				return re
			}
			let max1=getBig(num1,num2)
			document.write(max1)
			
		</script>s

函数作用域

全局作用域 :在函数外部或整个script内有效
局部作用域 :也称为函数作用域,只在函数内部有效
块级作用域 :{}内有效

在JavaScript中变量根据作用域都得不同使用范围也不同

全局变量
局部变量
块级变量
特殊情况介绍
如果函数或者块级作用域内部,变量没有声明,直接赋值,也当全局变量看,一般不推荐这样使用
函数内部的形参可以看作局部变量

变量访问原则 :(就近原则,先在当前作用域下查找)

如下面输出结果?

let num = 20;  // 全局变量
function fun(){
    
    
	let num = 40;  // 局部变量
	console.log(num)
}

fun()


匿名函数

语法:

let fn =function(){
    
    
	// 函数体
}

//调用:

fn()```javascript
		<script>
			let fn=function(x,y){
    
    
				document.write(x+y)	
				}
				fn(5,6)
		</script>

立即执行函数 (作用:防止变量污染
特点:立即执行)
多个立即执行函数之间需要用分号隔开

(function(形参) {
	
} (实参))

例子

	(function(x,y){
    
    
		document.write(x+y)

	}(58))


		// 案例 
		<script>
			// 1、用户输入
			let time=prompt("请输入时间总秒数")
			// 2、计算
			function getTime(t){
    
    
				let h =parseInt(t/60/60%24)
				let m = parseInt(t/60%60)
				let s =parseInt(t%60)
				h=h<10? '0'+h:h
				m=m<10? '0'+m:m
				s=s<10? '0'+s:s
				return `时间是${
      
      h}小时${
      
      m}${
      
      s}`
			}
			// 3、输出结果
			let str =getTime(time)
			document.write(str)
		</script>

猜你喜欢

转载自blog.csdn.net/hjjshua/article/details/125086980
今日推荐