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

《JavaScript 中数据类型判断、转换技巧及应用实例》

目录

一、数据类型判断

(一)typeof 运算符

二、数据类型转换

(一)字符串转数字

三、应用实例分析


一、数据类型判断

(一)typeof 运算符

  • 基本用法:在 JavaScript 中,typeof是一个非常有用的单目运算符,用于判断变量的数据类型。我们可以直接在变量名之前加上typeof来获取变量的数据类型信息,也可以把它当作方法来使用,如typeof(),将需要判断的内容作为参数传进去。

二、数据类型转换

(一)字符串转数字

  • 转换方法:在 JavaScript 中,我们可以使用parseInt()parseFloat()方法将字符串转换为数字。
    • 纯数字字符串:当字符串是纯数字的时候,这些方法可以正常地将字符串转换为对应的数字。
    • 数字与字母混合字符串:如果字符串开头是数字,后边有字母,那么转换时会从第一个字母后边整体截掉,只保留前面的数字部分进行转换。
    • 字母开头字符串:当字符串开头就是字母时,转换的结果为NaN(Not a Number)。
  • 判断是否为 NaN:为了判断一个值是否为NaN,JavaScript 提供了isNaN()方法。当传入的值是NaN时,该方法返回true,否则返回false

三、应用实例分析

<!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>

<script>
    window.onload = function() {
        var btn = document.querySelector(".btn");
        var container = document.querySelector(".container");
        var money = document.querySelector(".money");
        var timer;
        var change = function(target) {
            // container.innerHTML=parseInt(container.innerHTML)+parseInt(money.value)

            container.innerHTML = parseInt(container.innerHTML) + 1
            if (container.innerHTML >= target) {
                clearInterval(timer)
            }
        }
        btn.onclick = function() {
            var target = parseInt(container.innerHTML) + parseInt(money.value)
            if (!isNaN(parseInt(money.value))) {
                //    change()
                timer = setInterval(function() {
                    change(target)
                }, 1000)
            } else {
                alert("金额必须是数字")
            }
        }
    }
</script>

<body>
    <div class="container">
        10
    </div>
    转账金额:<input type="text" class="money">
    <input type="button" value="转账" class="btn">
</body>

</html>

在这个实例中:

  • 当点击 “转账” 按钮时,程序首先通过parseInt尝试将输入框中的值转换为数字,并使用isNaN判断是否转换成功。
  • 如果转换成功,则根据当前容器中的数值和输入的金额设置一个累加的目标值,然后通过setInterval每秒增加容器中的数值,直到达到目标值。

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

相关文章:

  • 关于使用vue-cropperjs上传一张图后,再次上传时,裁剪的图片不更新的问题
  • SpringAOP之日志和身份验证
  • 新年快乐
  • AIGC与未来的通用人工智能(AGI):从生成内容到智能革命
  • 【容器化技术 Docker 与微服务部署】详解
  • Spring-Mybatis 2.0
  • GitHub每日最火火火项目(9.10)
  • 最新版 | SpringBoot3如何自定义starter(面试常考)
  • Java数组的定义及遍历
  • 【局域网投屏】sunshine和moonlight投屏/屏幕共享/扩展屏
  • LabVIEW软件,如何检测连接到的设备?
  • 全频段覆盖的卫星通信模块-灵活应对多应用场景
  • Swift 中的函数:定义、使用与实践指南
  • 《ChatGPT:强大的人工智能聊天机器人》
  • vue axios 如何读取项目下的json文件
  • 云计算41——部署project_exam_system项目(续)
  • 正点原子阿尔法ARM开发板-IMX6ULL(四)——汇编LED驱动实验-下
  • 超微小间距COB大尺寸LED智能会议一体机玩转高清视频会议显示市场
  • 1-14 画框画线画圆 opencv树莓派4B 入门系列笔记
  • 建投数据获批安全生产许可证
  • 通过API方式访问llama3
  • 学习使用双指针
  • 浙大数据结构:04-树6 Complete Binary Search Tree
  • 具有RC反馈电路的正弦波振荡器(文氏桥振荡器+相移振荡器+双T振荡器)
  • 基于SSM架构的农产品朔源系统
  • RAFT协议(算法)