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]}`)