这篇还是继续写JS
这是有关函数的一些内容
函数
为什么需要函数
函数是被设计为执行指定任务的代码块
函数可以把具有相同或者相似逻辑的代码包裹起来,通过函数调用执行这些被包裹的代码逻辑,这样的优势是有利于精简代码方便复用
函数使用
这是函数的声明:
这是实例:
函数有一些命名规范:
这是函数调用的格式:
这是函数体的概念:
函数传参
要把计算的数字传到函数内,可以提高灵活性
还是那句话,形参是实参的临时拷贝(真的吗)
形参可以看做是变量,如果一个变量不给值,默认是undefined,如果做用户不输入实参,则undefined+undefined的结果是NaN
如果用户不输入实参就可以给缺省值(形参默认值)
这个默认值只会在缺少实际参数传递的时候才会被执行,所以有参数会执行传递过来的实参,否则默认为undefined
函数返回值
有些函数不需要返回值,如果要返回那就用return
作用域
全局和局部
对于函数的作用域:
如果函数内部变量没声明直接赋值也当全局变量看(强烈不推荐)
函数内部的形参可以看做是局部变量(那看来和cpp差不多)
和cpp一样,先局部后全局
当然是123
当然是0
变量访问时采取就近原则的方式来查找变量最终的值
匿名函数
函数可以分为具名函数和匿名函数:
没有名字的函数无法直接使用
使用方式是函数表达式
或者立即执行
函数表达式:将匿名函数赋值给一个变量,并且通过变量名进行调用,这个是函数表达式
匿名函数的使用场景是没有
但是先认识
WebAPI要用:
立即执行函数:
多个立即执行要用;隔开,不然会报错
立即执行函数的作用:
综合案例
要求是用户输入秒数就可以自动转换成时分秒
怎么补零?
可以用三目操作符试试:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
let seconds = +prompt('请输入秒数')
seconds = parseInt(seconds);
if (isNaN(seconds)) {
console.log('请输入有效的数字秒数');
}
else {
function time(s1) {
let h = parseInt(s1 / 60 / 60 % 24)
let m = parseInt(s1 / 60 % 60)
let s = parseInt(s1 % 60)
h = h < 150 ? '0' + h : h
m = m < 10 ? '0' + m : m
s = s < 10 ? '0' + s : s
let res = h.toString() + '时' + m.toString() + '分' + s.toString() + '秒'
return res
}
}
let result = time(seconds)
console.log(result)
</script>
</body>
</html>
没错,世界如此简单
逻辑中断
逻辑中断?
这是类似于给缺省值
很常用
逻辑短路
如果都是真,那&&输出最后一个真,||输出第一个真
这是物理像素和逻辑像素的关系:
转换为Boolean类型
看看隐式转换吧孩子们:
这就是全部了孩子