蓝桥模拟赛刷题之计算个人所得税

简介: 蓝桥第一次线上模拟赛的第三题,要让我们实现一个个人所得税计算功能,原生实现

实现个人所得税功能

蓝桥第一次线上模拟赛的第三题,要让我们实现一个个人所得税计算功能,原生实现

具体要求

题目的具体要求就是不同的薪资,按照不同规模的百分比来计算,即当小于5k,没有含税部分,而超过部分按照超过多少并乘以不同数量对应的比例。下面是HTML结构,一个表单一个按钮还有一段文本,我们在表单中输入我们的薪资,最后通过事件计算得出最后的结果。

<input type="number" required class="form-control" style="width: 50%;" id="salary" placeholder="请输入您的工资">
<button type="submit" class="btn btn-primary" id="btnsubmit">计算</button>
<p>您需要缴税<span id="val">0</span>元</p>  
复制代码

功能实现

  1. DOM绑定
    首先我们需要对三个dom元素进行对应所需事件的绑定,即我们需要对按钮绑定一个点击事件,并通过DOM获取到表单内我们所填的薪资数据,然后进行一个判断作为提示,最后由于我们拿到的字符串,所以我们需要通过使用parseInt来将我们获取的薪资字符串转换为数字,然后我们再通过薪资计算函数进行计算,最后绑定到我们设置的段落中并渲染
document.getElementById("btnsubmit").onclick = function() {
        var salary = document.getElementById("salary").value; //薪资
        if (salary <= 0) {
            alert("薪资不能为0或小于0");
            return false;
        }
        var result = cal(parseInt(salary));
        document.getElementById("val").innerText = result;
    };
复制代码
  1. 薪资计算函数
    最重要的就是薪资计算函数了,先看一下我最初写的一个解决方案,我们是使用if嵌套来实现的,其中需要判断每个额度的范围,再来计算最后的数据,这样的话代码还是很麻烦的,而且在比赛中还是很耗时间,这也是我对于一些语法,还有逻辑上的不熟练,所以就使用另外一种写法。
var shui;
    if (salary <= 5000) {
         shui = 0;
    } else if (salary <= 9000) {
         shui = (salary - 5000) * 0.03;
    } else if (salary <=15000) {
         shui = (salary - 5000) * 0.05;
    } else {
    shui = (salary - 5000) * 0.1;
}
    return shui;
复制代码
  1. 这种写法是通过?:来进行计算的,代码简洁,所以当我们出现了要使用多个判断来计算的场景的时候,我们就可以来使用这种代码,有效减少代码冗余
let res = salary <= 5000 ? 0 :
    salary <= 9000 ? (salary - 5000) * 0.03 :
    salary <= 15000 ? (salary - 5000) * 0.05 :
    (salary - 5000) * 0.1
    return res



相关文章
mac上datagrip.vmoptions文件编辑错误导致DataGrip软件打不开
mac上datagrip.vmoptions文件编辑错误导致DataGrip软件打不开
|
安全 Ubuntu
Ubuntu Samba高危安全漏洞修复
Ubuntu系统中使用的Samba版本存在一个或多个高风险安全漏洞。受影响的Samba版本包括但不限于4.13.x低于4.13.17、4.14.x低于4.14.12以及4.15.x低于4.15.5。这些漏洞可能会允许未经身份验证的攻击者远程执行恶意代码,获取未经授权的访问权限,或者进行其他形式的安全攻击。
627 0
|
Java 程序员
收藏!阿里毕玄16篇文章,深度讲解Java开发、系统设计、职业发展
阿里毕玄结合自己的经历深度讲解Java开发、系统设计、职业发展等问题,快来一键收藏吧。
35188 1
|
算法 搜索推荐 数据库
二分搜索:高效的查找算法
【10月更文挑战第29天】通过对二分搜索的深入研究和应用,我们可以不断挖掘其潜力,为各种复杂问题提供高效的解决方案。相信在未来的科技发展中,二分搜索将继续发挥着重要的作用,为我们的生活和工作带来更多的便利和创新。
198 1
|
NoSQL 网络协议 算法
Redis 客户端连接
10月更文挑战第21天
179 1
|
SQL IDE JavaScript
"揭秘高效代码Review秘籍:如何像侦探一样挖掘隐藏错误,提升团队编程实力,你不可错过的实战指南!"
【8月更文挑战第20天】代码Review是软件开发中提升代码质量与团队协作的关键环节。本文详细介绍高效代码Review流程:从明确范围与标准开始,到逐行审查与工具辅助,再到积极沟通与闭环管理,辅以示例确保清晰易懂。通过实践这些步骤,不仅能减少错误,还能促进知识共享,为构建高质量软件打下坚实基础。
369 2
|
XML 存储 JavaScript
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(1)
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(1)
278 5
|
Ubuntu
ubuntu引导修复
ubuntu引导修复
255 0
|
人工智能 人机交互 语音技术
让大模型更懂你的情绪——通义实验室与中科院自动化所联合开源中英双语共情语音对话模型BLSP-Emo
BLSP-Emo模型展示了情感智能在人机交互中的重要性,未来的多模态模型将更加注重情感的识别和表达,使得机器能够更加准确地理解和回应用户的情感状态,甚至生成富有情感的语音反馈。同时,BLSP-Emo展示了将副语言信号对齐到大语言模型语义空间的可能性,我们期待着更加人性化、更具有共情力的对话交互模型的出现。
|
SQL Java 程序员
马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录Day1最快 最全(1)
马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录Day1最快 最全(1)
447 1