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

后盾人JS--JS值类型使用(终章)

数值类型转换技巧与NaN类型

什么是NaN呢?顾名思义就是,not a number

<!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>
        console.log(Number("houdunren"))
        console.log(2 / "houdunren")
        console.log(Number.isNaN(2/"houdunren"))
    </script>
</body>
</html>

当无法转换成数字或者数字和字符串进行运算的时候得到的就会是NaN

NaN类型之间是无法进行比较的

数组只有一个值就取那个值,没有就是0,有多个就是NaN

Math数学计算

<!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>
        //Math
        Math.max(1,2,3,4,5)     //取得最大值
        let grade = [12,3,2,124]
        console.log(Math.max.apply(null,grade))     //以数组形式传参
        console.log(Math.ceil(5.01))    //向上取整
        console.log(Math.floor(4.99))   //向下取整
    </script>
</body>
</html>

这是一些Math的相关方法


Math.random随机点名操作

基本上所有语言都有他们对应的随机数操作,JS也不例外

<!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>
        //0~1
        console.log(Math.random())
        //0~5
        console.log(Math.floor(Math.random() * (5 + 1)))
        //张三-马六
        const students = ["李四", "宋七", "张三", "王五", "马六"]
        console.log(2 + Math.floor(Math.random() * (students.length - 2)))
    </script>
</body>

</html>


日期时间戳的使用与计算脚本执行时间

其实你之前学过的,对吧

<!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>
        const date = new Date()
        console.log(date)
        console.log(typeof date)
        console.log(date*1)

        const start = Date.now()
        for(let i = 0;i<100000000;i++){}
        const end = Date.now()
        console.log((end-start)/1000+"秒")
    </script>
</body>
</html>

写一个脚本计算时间


ISO与TIMESTAMP格式互换

来看看标准时间和时间戳之间的转化吧

<!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>
        const date = new Date("1996-7-12 08:22:12")
        //时间转换成时间戳
        console.log(date*1)
        console.log(Number(date))
        console.log(date.valueOf())
        console.log(date.getTime())
        const timestamp = date.valueOf()
        //时间戳转换成时间
        console.log(timestamp)
        console.log(new Date(timestamp))
    </script>
</body>
</html>

封装日期格式化函数

<!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>
        const date = new Date("1992-2-12 10:22:18")
        function dateFormat(date, format = "YYYY-MM-DD HH:mm:ss") {
            const config = {
                YYYY: date.getFullYear(),
                MM: (date.getMonth() + 1),
                DD: date.getDate(),
                HH: date.getHours(),
                mm: date.getMinutes(),
                ss: date.getSeconds()
            }
            for (const key in config) {
                format = format.replace(key, config[key])
            }
            return format
        }
        console.log(dateFormat(date, "YYYY年MM月DD日HH时mm分ss秒"))
    </script>
</body>

</html>

这样虽然不难但是很麻烦哎


优秀的日期处理库momentjs

介绍一个优秀的日期处理库(其实我在学过里牛渴死之后就有点那个啥了,念念不忘必有回响的感觉)

这是一个优秀的日期处理库:

BootCDN - Bootstrap 中文网开源项目免费 CDN 加速服务 铂特优选icon-default.png?t=O83Ahttps://www.bootcdn.cn/这是使用(只要拷贝就好了):

<!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>
    <!-- 加载完整的 Moment.js 库 -->
    <script src="https://cdn.bootcdn.net/ajax/libs/moment.js/2.30.1/moment.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/moment.js/2.30.1/locale/ar-kw.min.js"></script>
    <script>
        const date = moment("1992-02-22 10:12:24");
        console.log(date.format("YYYY-MM-DD HH:mm:ss")); // 输出原始日期
        console.log(date.add(10, "days").format("YYYY-MM-DD HH:mm:ss")); // 输出加10天后的日期
    </script>
</body>
</html>

 


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

相关文章:

  • MySQL(高级特性篇) 04 章——逻辑架构
  • thinkphp 5.0 结合redis 做延迟队列,队列无法被消费
  • 《零基础Go语言算法实战》【题目 2-22】Go 调度器优先调度问题
  • Artec Leo 3D扫描仪与Ray助力野生水生动物法医鉴定【沪敖3D】
  • 013:深度学习之神经网络
  • STM32 FreeRTOS的任务创建和删除
  • 运行爬虫时可能遇到哪些常见问题?
  • 2024—AWS:re:Invent城市巡展——武汉站参会心笺
  • 【ubuntu24.04】配置ssh以root登录
  • lombok在高版本idea中注解不生效的解决
  • 人工智能计算机视觉学习路线——从基础到深度探索
  • 从零开始搭建一个RESTful API(Node.js + Express)
  • RocketMQ、Kafka、RabbitMQ,如何选型?
  • 代码随想录算法训练营Day48 | 图论理论基础、深搜理论基础、98. 所有可达路径、广搜理论基础
  • 【Python】数据容器:列表,元组,字符串,集合字典及通用操作
  • Scala语言的软件工程
  • jenkins的作用以及操作
  • 售点POI标签计算性能优化实战:Haversine公式与区域化计算的结合
  • P11043 [蓝桥杯 2024 省 Java B] 分布式队列(c++)
  • 个人曾经ARM64_汇编角度_PLTHOOK的研究
  • 深入探讨 Vue.js 的动态组件渲染与性能优化
  • Windows11下OpenCV最新版4.11源码编译
  • 字符串算法篇——字里乾坤,算法织梦,解构字符串的艺术(上)
  • ros2笔记-6.2 使用urdf创建机器人模型
  • Qiskit快速编程探索(基本篇)
  • 深入浅出 Android AES 加密解密:从理论到实战