day01关于JavaScript 基础的一些小案例整理(多种方法解题)

本文分享了五个JavaScript编程案例,包括用户输入年份计算年龄、计算两个数的和、根据天数推算星期、三位数各位数字求和以及根据时间点显示问候。案例涵盖了基础的输入验证、算术运算、条件判断、日期处理等知识点,适合初学者练习。

好久没有更新了,说实话也是学的内容确实不算少,而且兄弟我又是个卷派,凡事都想学快一点,以至于没有时间更新,最近几天,我会陆续整理一些小案例,供大家练练手,每种题都是好几种写法哦

对于新手超级友好!!!

毕竟我也是新手嘛!!!

话不多说,上干货!

案例1;用户输入提示框 输入出生年份 文档打印多少岁! (3种写法)

这道题,整理了三种写法,题目很简单,三种写法主要是为了让大家熟悉一下各个方法的不同,程序员多敲敲嘛,敲多了,就都会了! 

分别是:

1、最常规的弹窗

2、加入了对于用户输入的内容是否是数字的判断条件,同时用while 循环 直到输入直到输入正确

3、isNaN  + while

    // 方法一  最简单常规理想状态
    var year = prompt('请输入年份:');
    age = 2022 - year;
    alert('你已经' + age + '岁了');


    // 方法二  复杂一点
    var flag = true;
    while (flag) {
        var year = +prompt('请您输入您的出生年份') // 前面写个 +  是把字符强制转成数字型
        if (typeof year === 'number') {
            var age = 2022 - year; // year 取过来的是字符串型  但是这里用的减法 有隐式转换
            alert('您今年已经' + age + '岁了');
            flag = false;
        } else {
            alert('请输入正确的数字类型');
            continue;
        }
    }

    // 方法三  用的isNaN
    var year = prompt('请您输入您的出生年份');
    var flag = isNaN(year);
    while (flag) {
        alert('请输入正确的数字类型');
        year = prompt('请您输入您的出生年份');

    }
    alert('您年龄是:' + (2022 - year));

案例二:弹出两次输入框(prompt)计算两次的和!

这个就是常规操作,两次取值,加上 数字的隐式转换   因为prompt 接收的数据类型是字符串,所以需要隐式转换!

    var num = prompt('请输入第一个值');
    var num1 = prompt('请输入第二个值');
    num = num - 0;
    num1 = num1 - 0;
    alert('两个数的和为' + parseFloat(num + num1))

案例三:【难度★★★★】如果今天是星期六,那么1000天是星期几?(4种写法)

1、正常的取 模运算

2、switch 分类讨论 ,虽然长了点,不过思路很清晰,比较容易理解

3、三元表达式书写

4、简单数字类

    // 方法一  默认今天是第一天  直接取余 
    var num = 1000 % 7 - 1;
    console.log('是的星期' + num + '啊');
    // 方法二  升级版  虽然有点长,不过思路很简单
    var time = prompt('今天是周六,你想知道多少天后是星期几吗?')
    time = time - 0;
    var time = time % 7;
    switch (time) {
        case 0:
            alert('星期六');
            break;
        case 1:
            alert('星期日');
            break;
        case 2:
            alert('星期一');
            break;
        case 3:
            alert('星期二');
            break;
        case 4:
            alert('星期三');
            break;
        case 5:
            alert('星期四');
            break;
          default:
            alert('星期五');
    }
    // 方法三  三元表达式
    var newTime = +prompt('请输入您要查询的日期(可以显示星期几):')
    var num = newTime % 7  // 必须得加一个结果 不然alert  没法调用结果
    var re = newTime % 7 < 3 ? num + 5 : num - 2;
    alert(newTime + '号是星期' + re)

    // 方法四   简单数字类
    var newTime = +prompt('请输入您要查询的日期(可以显示星期几):')
    var num = newTime % 7;
    if (num < 6) {
        alert(newTime + '号是星期' + (num + 2))
    } else {
        alert(newTime + '号是星期' + (num - 5))
    }   

案例四:

【难度★★★★★】用户输入一个三位数,用程序计算三位数字的和(两种方式实现)。

    // 比如:    

    // 用户输入155,就弹出11

    // 用户输入316,就弹出10

    // 用户输入989,就弹出26

    // 用户输入678,就弹出21

    // 注意:用户输入数字的有效性、合法性不用考虑。比如,如果用户输入34343、“我爱你”,这种情况我们不要去考虑,你就想像,用户会非常乖,一定会输入3位数的。这是因为我们没有学习if语句。

这个题目主要是得理清楚思路,这里整理了两种写法

核心在于,怎么把 个位、十位、百位 上的数分别取出来?

    alert('方法一')
    var num5 = prompt('请输入一个三位数')

    num.substring

    var num6 = num5[0] - 0;
    var num7 = num5[1] - 0;
    var num8 = num5[2] - 0;
    var num9 = num8 + num6 + num7;
    alert('三位数相加等于' + num9);


    alert('方法二')
    var num5 = prompt('请输入一个三位数')
    var num5 = num5 - 0;
    var num6 = num5 % 10;//个位数           3
    var num7 = num5 % 100;
    num7 = parseInt(num7 / 10);//十位数      2.3  2       
    var num8 = parseInt(num5 / 100);//百位数
    var num9 = num8 + num6 + num7;
    alert('个位数:' + num6);
    alert('十位数:' + num7);
    alert('百位数:' + num8);
    alert('三位数相加等于' + num9);

案例五:  这个题整理了3种写法  分别是基础班、升级版、和工作版

    // ###1- 判断时间阶段。

    // - 题目描述:

    //      用户输入几点弹出问候信息;

    //      如用户输入12点中午好;

    //      用户输入18点 弹出傍晚好;

    //   ​  用户输入23点弹出深夜好;

    // 方法一  硬性的几个答案
    var time = prompt('请输入时间点:')
    if (time == 12 || time == '12点') {
        alert('中午好!')
    } else if (time == 18 || time == '18点') {
        alert('傍晚好!')
    } else if (time == 24 || time == '24点') {
        alert('晚上好!')
    }

    // 方法二  输入时间段问好

    var now = +prompt('请输入时间点:')
    if (now > 0 && now <= 6) {
        alert('午夜好!')
    } else if (now > 6 && now <= 11) {
        alert('早上好!')
    } else if (now > 11 && now <= 14) {
        alert('中午好!')
    } else if (now > 14 && now <= 18) {
        alert('下午好!')
    } else {
        alert("晚上好!");
    }


    // 方法三  实时时间问好。访问现在电脑时间,跳出信息框,大网站基本上都有这种定点提示框
    var now = (new Date()).getHours();
    if (now > 0 && now <= 6) {
        alert('午夜好!')
    } else if (now > 6 && now <= 11) {
        alert('早上好!')
    } else if (now > 11 && now <= 14) {
        alert('中午好!')
    } else if (now > 14 && now <= 18) {
        alert('下午好!')
    } else {
        alert("晚上好!");
    }

今天就整理出来呢5个案例,如果对您有用的话,记得点个赞哦!

接下来还会更新各种实用小案例供大家参考练习,还有各种各样的解法,记得收藏一下哦!

谢谢谢谢~~~你~您~您~嘞~~

 

前言   第1章使用JavaScript字符串   1.0简介   1.1连接两个或多个字符串   1.2连接字符串和另一种数据类型   1.3条件比较字符串   1.4在字符串中查找子字符串   1.5从一个字符串提取子字符串   1.6检查一个存在的、非空的字符串   1.7将一个关键字字符串分解为单独的关键字   1.8插入特殊字符   1.9处理textarea的单个行   1.10去除字符串末尾的空白   1.11左补充或右补充一个字符串   第2章使用正则表达式   2.0简介   2.1测试一个子字符串是否存在   2.2测试不区分大小写的子字符串匹配   2.3验证社会安全号码   2.4找到并突出显示一个模式的所有实例   2.5使用新字符串替换模式   2.6使用捕获圆括号交换一个字符串中的单词   2.7使用正则表达式来去除空白   2.8使用命名实体来替代HTML标签   2.9搜索特殊字符   第3章日期、时间和定时器   3.0简介   3.1打印出今天的日期   3.2打印出UTC日期和时间   3.3打印出一个ISO 8601格式日期   3.4把一个ISO 8601格式的日期转换为Date对象可接受的一种格式   3.5创建一个特定的日期   3.6规划未来的一个日期   3.7记录流逝的时间   3.8创建一个延迟   3.9创建重复性定时器   3.10使用带有定时器的函数闭包   第4章使用Number和Math   4.0简介   4.1保持一个递增的计数   4.2把十进制数转换为一个十六进制值   4.3创建一个随机数生成器   4.4随机产生颜色   4.5把表中的字符串转换为数字   4.6把表中一列的所有数字加和   4.7在角度和弧度之间转换   4.8找到页面元素可容纳的一个圆的半径和圆心   4.9计算圆弧的长度   第5章使用数组和循环   5.0简介   5.1循环遍历数组   5.2创建多维数组   5.3从数组创建一个字符串   5.4排序数组   5.5按顺序存储和访问值   5.6以相反的顺序存储和访问值   5.7创建一个新数组作为已有数组的子集   5.8在数组中搜索   5.9将一个多维数组扁平化   5.10搜索和删除或替换数组元素   5.11对每个数组元素应用一个函数   5.12对数组中的每个元素执行一个函数并返回一个新数组   5.13创建一个过滤后的数组   5.14验证数组内容   5.15使用一个关联数组来存储表单元素名和值   第6章使用JavaScript函数构建重用性   6.0简介   6.1创建一段可重用的代码   6.2把单个数据值传递到函数   6.3把复杂的数据对象传递给函数   6.4创建一个动态运行时函数   6.5把一个函数当做参数传递给另一个函数   6.6实现递归算法   6.7创建能够记住其状态的函数   6.8使用一个通用的科里化函数提高应用程序性能   6.9使用缓存计算(Memoization)来提高应用程序性能   6.10使用匿名函数包装全局变量   第7章处理事件   7.0简介   7.1检测页面何时完成载入   7.2使用Event对象捕获鼠标点击事件的位置   7.3创建一个通用的、可重用的事件处理函数   7.4根据修改的条件来取消一个事件   7.5阻止事件在一组嵌套元素中传播   7.6捕获键盘活动   7.7使用新的HTML 5拖放   7.8使用Safari方向事件和其他移动开发环境   第8章浏览器模块   8.0简介   8.1请求Web页面访问者确认一项操作   8.2创建一个新的、下拉式的浏览器窗口   8.3找到关于浏览器的访问页面   8.4警告Web页面访问者将要离开页面   8.5根据颜色支持更改样式表   8.6根据页面大小修改图像尺寸   8.7在CMS模板页面中创建面包屑路径   8.8将一个动态页面加入书签   8.9针对后退按钮、页面刷新来保持状态   第9章表单元素和验证   9.0简介   9.1访问表单文本输入值   9.2动态关闭或打开表单元素   9.3根据一个事件从表单元素获取信息   9.4当点击单选按钮的时候执行一个动作   9.5检查一个有效的电话号码   9.6取消表单提交   9.7阻止重复表单提交   9.8隐藏和显示表单元素   9.9根据其他表单选择修改一个选项列表   第10章调试和错误处理   10.0简介   ……   第11章访问页面元素   第12章创建和删除元素和属性   第13章使用Web页面空间   第14章使用JavaScriptCSS和ARIA创建交互和可访问性效果   第15章创建富媒体和交互应用程序   第16章JavaScript对象   第17章JavaScript库   第18章通信   第19章使用结构化数据   第20章持久化   第21章JavaScript创新用法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值