JS Day 4
函数
WHY
函数(function):执行特定任务的代码块
有利于精简代码,方便复用,提高开发效率
函数使用
function关键字声明
function 函数名(){函数体
}
function hello(){document.write('hello javascritp')
}
函数命名规范
1-和变量名基本一致
2-小驼峰式
3-前缀为动词
函数调用
函数名()
hello()
函数体
封装功能代码
复用代码和循环的区别
1-循环代码写完即执行,不方便控制执行位置
2-函数可随时调用,随时执行,可重复调用
函数传参
提高函数的灵活性
有参函数的声明和调用
声明:
参数列表:传入数据列表;声明数据个数;逗号隔开数据
function 函数名(参数列表){函数体
}
调用:
函数名(传递的参数列表)
形参和实参
形参:声明函数时卸载函数名右边小括号里的参数,即形式上的参数(函数内声明的变量)
实参:调用函数时卸载函数名右边小括号里的参数,即实际上的参数(变量赋值)
函数返回值
return返回数据
将函数内部的执行结果交给函数外部使用
函数可以没有return,默认返回值undefined
return会立即结束当前函数
return DATA
function getSum(x,y){return x+y
}
let num=getSum(10,30)
ducument.write(num)
作用域
作用域:可用性的代码范围
作用域分类:全局;局部;块级{}
变量分类:全局;局部;块级
函数内部的形参可以看作局部变量
如果函数内部/块级作用域内部,变量没有声明直接赋值,可以看作全局变量
变量访问原则-作用域链
根据在内部函数可以访问外部函数变量的机制,用链式查找决定哪些数据能够被内部函数访问
作用域链:就近原则,查看变量最终值
匿名函数
函数分类:
1-具名函数 function fn() {}
2-匿名函数 function() {}
匿名函数的语法和调用
语法:
let fn=function(){}
调用:
fn()
函数表达式:将匿名函数赋值给一个变量,并且通过变量名称进行调用
函数的形参和实参使用跟具名函数一致
立即执行函数
应用场景:避免全局变量之间的污染
语法:
多个立即执行函数使用时需隔开,否则报错
Day 4 EXAMPLE
转换时间:用户输入秒数,自动转化为时分秒
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script>let second = prompt('请输入总的秒数:')function getTimes(t) {let h = parseInt(t / 60 / 60 % 24)let m = parseInt(t / 60 % 60)let s = parseInt(t % 60)h = h < 10 ? h : hm = m < 10 ? m : ms = s < 10 ? s : sreturn `计算之后的时间是${h}小时${m}分${s}秒`}let str = getTimes(second)document.write(str)</script>
</body></html>