js函数(function)

195 阅读2分钟

基本写法

function 函数名() {
}
函数名()//调用函数,相当于执行一次函数,写几个,执行几次

基础案例

获取多个不同数组中的最大值

function max(dd ){
    let   max=dd[0]
    for (let index = 0; index<dd.length; index++) {
       (dd[index]>=max)&&(max=dd[index])
    }
console.log(max)   
}
max ([3,34,5,6,33])
max([2,55,66,876,3])
 //console.log的位置按照不同需求,位置是不一样的
//function max(dd )里dd可以换成任何内容

计算1-100的总和

function sum(){
    let   sum=0
    for (let index = 1; index<=100; index++) {
       sum+=index
    }
console.log(sum)   
}
sum ()
//如果要算1-50的和怎么办,这时要用新的技术---传参

函数传参

计算两个数的和案例

function sum(n ,m){
console.log(`${n+m}`)   
}
sum (3,8)
sum (3,9)
sum (3,10)
//数值之间用,隔开
//数值不对应时,会显示undefined

函数返回值

特点

//一个函数里只能有一个return 
//写多个也只能执行第一个return    
//另外:return后面的任何代码都不会执行

案例

求两个数的最大值

function name1(n1,n2) {
  if(n1>n2){
      return(n1)
  }else{
     return(n2)
  }
}

console.log(name1(3,5))
document.write(name1(33,8))
alert(name1(99,4))

求一个数组里的最大值和最小值

function getMax(arr1) {
    let  max=arr1[0]
    for (let index = 0; index < arr1.length; index++) {
       if(arr1[index]>=max){
           max=arr1[index]
       } 
    }
    return(max)
}
function getMin(arr2) {
    let  min=arr2[0]
    for (let index = 0; index < arr2.length; index++) {
        if(arr2[index]<arr2[0]){
            min=arr2[index]
        }
    }
return(min)
}
let arr0=[3,2,44,62]
console.log(getMax(arr0))
console.log(getMin(arr0))
//注意 return的位置 
//注意let max=arr1[0]的 位置 
//写返回值的意义是什么,不用有什么不同

作用域(全局+局部)

先看下案例

输出的是几

let  num=10
function fn1() {
    let  num=20
    console.log(num)
}
fn1()
//20
let  num=10
function fn1() {
    //let  num=20
    console.log(num)
}
fn1()
//10
function f1() {
let num = 123

function f2() {
let num = 0
console.log(num)
}
f2()
}
letnum=456
f1()//0
function f1() {
let num = 123

function f2() {
//let num = 0
console.log(num)
}
f2()
}

letnum=456
f1()//123
let a = 1
function fn1() {
    let a = 2
    let b = '22'
    fn2()//
    function fn2() {
        let a = 3
        fn3()
        function fn3() {
            let a = 4
            console.log(a) //a的值 ?
            console.log(b) //b的值 ?
        }
    }
}
fn1()
//最终输出4和22,但22是字符串

为什么会这样呢

//在不同区域内,变量名字可以一样

匿名函数(了解)

let  fn=function(){
}
// 调用
fn()

综合案例:转换时间

function time() {
let  time=+prompt('输入数字')

let  hour=Math.floor(time/3600)  
let  min=Math.floor((time-hour*3600)/60)  
let   second=Math.floor(time-hour*3600-min*60)

if(hour<10){
    hour='0'+hour
}
if(min<10){
    min='0'+min
}
if(time<10){
second= '0'+  second
}

return  hour+':'+min+':'+second

}

console.log(time())
//Math.floor的使用

math的拓展

求最大(小)值

document.write(Math.max(3,4,6,33,2,2,1,0))
document.write(Math.min(3,4,6,33,2,2,1,0))

四舍五入(round)

Math.round(33.3)//33
Math.round(33.9)//34

向上取整数(ceil)

document.write(Math.ceil(33.3))//34
document.write(Math.ceil(33.8))//34

向下取整数(floor)

document.write(Math.floor(33.3))//33
document.write(Math.floor(33.9))//33

绝对值(abs)

Math.abs(-33.8)//33.8
Math.abs(33.8)//33.8

更多:

wenku.baidu.com/view/6c7c18…