了解函数,使用函数封装一个简单的秒转时分秒

180 阅读2分钟
1、函数的基本语法与使用
// 1. 函数的声明
             function 函数名() {
                 函数体
        		}
// 2. 函数的调用
			函数名()
 function sayHi() {
            document.write(`你好`)
			 }
sayHi()//会在html页面输出你好



//3.函数的参数,
 function sum(a,b//形参) {
            document.write(a+b)
			 }
  // 实参作用: 给形参赋值,相当于进行了a=10,b=20的操作
  // 实参的个数和形参的个数可以不一致
   sum(10,20//实参)//最终会在html页面输出30
       
 //4. returnd的作用
       function getRes(a, b) {
            let he = a + b
            let cha = a - b
            return [he, cha]
        }
les res = getRes(1,2)
//使用return返回函数内部所产生的值,return后续的代码不会执行,注意返回的值需要用一个容器装起来


2、作用域的说明
//全局变量,局部变量,块级变量
//全局变量全局都能够使用,
//函数内部的变量,只能函数内部使用,为局部变量
function getData() {
 a = 1
}
getData()
console.log(a);//打印不出a,会报错a is not defined,a未定义的

//特别注意:如果函数内部或者块级作用域内部,变量没有声明,直接赋值,也当全局变量看,但是强烈不推荐
function getData() {
a = 1
console.log(a);
 	}
let a = 10
getData()
console.log(a);
   
3、立即执行函数
 // 立即执行函数,作用:避免重复声明变量名导致代码bug
        /* 
            (function (){
                函数体
            })();
						  */

//使用方法
(function () {
            let num = 1
            //第一个人写的
        })();


        (function () {
            let num = 2
            //第二个人写的
        })();
//两者写的代码重名不会造成bug。

4、arguments函数伪数组的用法
 // 如果 实参个数大于形参,则后续传递进去的值会忽略
        // 如果 实参个数小于形参,则形参默认为undefined
        // 函数中 arguments代表传递进来参数的伪数组,伪数组无法使用一些数组的方法 
        function getSum() {
            // 伪数组也需要遍历才能使用
            let sum = 0
            for (let i = 0; i < arguments.length; i++) {
                sum = sum + arguments[i]
                //简写为sum +=  arguments[i]
        }
            document.write(sum)//最后输出的结果为60
        }

        getSum(10, 20, 30)
5.用函数封装一个简单的秒钟转换成时分秒
 /*
       小时:  h = parseInt(总秒数 / 60 / 60 % 24)
       分钟:  m = parseInt(总秒数 / 60 % 60 )
       秒数:  s = parseInt(总秒数 % 60)
        										*/

        // 用户输入的秒数 转换为时分秒 不足两位补0
	let times = +prompt('请您输入秒数')
        
	function getTime(time) {
	let h = parseInt(time / 60 / 60 % 24)
	let m = parseInt(time / 60 % 60)
	let s = parseInt(time % 60)

     	// 补0的操作  ctrl+d 快速选中相同的内容
	h = h < 10 ? '0' + h : String(h)
	m = m < 10 ? '0' + m : String(m)
	s = s < 10 ? '0' + s : String(s)
        // s = s < 10 ? '0' + s : s.toString()

        // 不做任何处理 直接返回三个值
            return [h, m, s]
        }

        let res = getTime(times)
        console.log(res);
        document.write(`转换的时间${res[0]}:${res[1]}:${res[2]}`)