Bootstrap

JS听到了替罪的回响

这篇还是继续写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类型

 

 看看隐式转换吧孩子们:

 

这就是全部了孩子

;