Js基础之函数

函数的使用

可以把相同的方法封装起来

函数的声明语法
function 函数名(){
    函数体
}
function sayHi(){
    document.write('hai~~')
}
​
//调用
sayHi()

需求: 1.封装一个函数,计算两个数的和2.封装一个函数,计算1-100之间所有数的和

//1.求个数的和
function getsum(){
let num1 = +prompt('请输入第一个数')
let num2 = +prompt('请输入第二个数')
console.log(num1 + num2)
getsum()
   }
//调用
 getsum()
函数的传参
function 函数名(参数列表){
函数体
   }
​
function getSum(num1, num2){
    document.write(num1+ num2)
}
​
//例题:
function getSum(start,end){  //形参   //end =50
    // console.log(end)
    let sum =0
    for(let i= start; i<= end; i++){
        sum += i
    }
console.log(sum)
}
getsum(1,50)  //实参    //1开始  50结束
​
//为了防止没有传参报错,可以设默认值
function getSum(x=0,y=0){
//x=1
// num1 默认的值 undefined
    document.write(x +y)
}
getsum(1,2)
getSum()//没有传参会报错 NaN 没有传参时才会执行

题:

需求:学生的分数是一个数组,计算每个学生的总分
分析:
1.封装一个求和函数
2.传递过去的参数是一个数组
3.函数内部遍历数组求和
​
//11.封装函数
function getArrSum(arr=[]){  //给个空数组为默认值
    // console.log(arr)
let sum=0
for(let i=0;i< arr.length; i++){
    sum += arr[i]
   }
console.log(sum)
}
getArrSum([1,2,3,4,5])   //结果15
getArrSum([11,22,33])   //结果66
getArrSum() // 防止报错
​

题2:

//求n~m的累加和
function getSum(n=0,m=0){
let sum =0
for(let i=n;i<= m; i++){
sum += i
    }
console.log(sum)
}
// getSum()
// getSum(1,2)
let num1 = prompt('请输入起始值:')
let num2 = prompt('请输入结束值:')
//调用函数
getSum(num1,num2)
函数的返回值

把处理结果返回给调用者

语法:

return 数值

function getsum(x,y){
return x+y
}
let num = getSum(10,30)
document.write(num)  //声明一个变量接收变量

题:

//1 求和函数的写法
function getTotalPrice(x,y){
return x+y
}
let sum= getTotalPrice(1,2)//记得定义一个变量接收
console.log(sum)
​
//注意:return后面的语句不能换行写
//没有返回值会报错,返回undefined

函数例题:

//11.求最大值函数function 
getMax(x,y){
    return x>y? x:y
}
 let max=getMax(1,2)
 console.log(max)
​
//2、求任意数组的最大值,并且返回
function getArrValue(arr=[]){
    //(1)先准备一个ax变量存放数组的第一个值
    let max = arr[0]
    //(2)遍历比较
    for(let i=1;i< arr.length; i++){
    if(max< arr[i]){
        max = arr[i]
         }
    }
    //(3)返回值
    return max
}
let max=getArrValue([1,3,5,7,9])
console.log(max)
//如果要同时拿到最大和最小值
return[max,min]
let newArr =getArrValue([1,3,5,7,9])
console.log(newArr)
//或者
console.log(`数组的最大值是:${newArr[0]}`);
console.log(`数组的最小值是:${newArr[1]}`);
作用域:

增强了程序的可行性,减少了名字冲突

1.全局作用域

全局有效 作用于所有代码执行的环境(整个 script 标签内部)或者一个独立的 js 文件

2.局部作用域

局部有效 作用于函数内的代码环境,就是局部作用域。 因为跟函数有关系所以也称为函数作用域。

访问原则:在能够访问到的情况下 先局部,局部没有在找全局

匿名函数
没有名字的函数,无法直接使用。
使用方式:
1.函数表达式
2.立即执行函数
<body>
<button>点击我</button>
<script>
let btn = document.querySelector('button')
btn.onclick = function(){
    alert('我是匿名函数')
}
</script>
</body>

2.立即执行函数

// 方式1
(function(){console.log(11)})();
//1 方式2
(function(){console.log(11)}());
//不需要调用,保存就立即执行
//要记得加分号结束
​
(function(x,y){//形参
    console.log(x+ y)
})(1,2);//实参    //结果为3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值