当前位置: 首页 > article >正文

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类型

 

 看看隐式转换吧孩子们:

 

这就是全部了孩子


http://www.kler.cn/a/413637.html

相关文章:

  • C# 泛型(Generic)
  • 代码美学2:MATLAB制作渐变色
  • linux模拟HID USB设备及wireshark USB抓包配置
  • 【系统架构设计师】高分论文:论软件架构的生命周期
  • Spring Boot 与 Spring Cloud Alibaba 版本兼容对照
  • Web开发:使用stackexchange.redis库对redis进行增删改查
  • Flink 之 Window 机制详解(上):基础概念与分类
  • java基础知识(Arrays类)
  • Java爬虫:深入解析商品详情的利器
  • 基于Springboot的流浪宠物管理系统
  • Vue.js 中 v-for 指令与 JavaScript 数组方法
  • Nvidia的hami是什么,以及如何再K8S中起作用
  • Zookeeper3.5.8集群部署
  • 数据库---HSQLDB使用教程详解
  • 什么是虚拟机栈
  • 200. 岛屿数量【 力扣(LeetCode) 】
  • 数据结构 (7)线性表的链式存储
  • uni-app中的样式尺寸单位,px,rpx,vh,vw
  • C++多线程——线程
  • 【人工智能】AutoML自动化机器学习模型构建与优化:使用Auto-sklearn与TPOT的实战指南
  • SpringBoot+Vue的音乐网站项目
  • mysql 触发器进入历史
  • Android 使用Charles抓包显示Unknown
  • MySQL 数据库索引优化实践指南
  • 利用阿里云镜像仓库和 Github Action 同步镜像
  • 【Qt】重写QComboBox下拉展示多列数据