JavaScript内置对象的练习

Posted YuLong~W

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript内置对象的练习相关的知识,希望对你有一定的参考价值。

猜数字游戏

使程序随机生成一个1~10之间的数字,并让用户输入一个数字,判断这两个数的大小,如果用户输入的数字大于随机数,那么提示“你猜大了”,如果用户输入的数字小于随机数,则提示“你猜小了”,如果两个数字相等,就提示“恭喜你,猜对了”,结束程序。

function getRandom(min, max) {
    return Math.floor(Math.random() * (max - min + 1) + min)//确保生成的数字在1~10之间
}
var random = getRandom(1, 10)
while (true) {
    var num = prompt('猜数字,范围在1~10之间。')
    if (num > random) { 
        alert('你猜大了')
    }else if (num < random) {
         alert('你猜小了') 
    }
    else { alert('恭喜你,猜对了'); break; }
}

倒计时算法的实现

<body onload="countDown('2021-06-14')">
    <span id="mydate" style="color: red;font-size: 35px;"> </span>
</body>
//输入的时间减去现在的时间,得出的剩余时间就是要显示的倒计时时间
//把时间都转化成时间戳(毫秒数)来进行计算
function countDown(time) {
   var nowTime = +new Date()//获取当前时间
   var inputTime = +new Date(time)//创建给定日期时间对象
	//使用'+'运算符转换为数值型 单位为毫秒(ms)
   var times = (inputTime - nowTime) / 1000  //转化为秒(m)
   var d = parseInt(times / 60 / 60 / 24)
       d = d < 10 ? '0' + d : d
   var h = parseInt(times / 60 / 60 % 24)
       h = h < 10 ? '0' + h : h
   var m = parseInt(times / 60 % 60)
       m = m < 10 ? '0' + m : m
   var s = parseInt(times % 60)
       s = s < 10 ? '0' + s : s
   //return d + '天' + h + '时' + m + '分' + s + '秒'
   var str=d + '天' + h + '时' + m + '分' + s + '秒' 
   //通过id获取页面中span标签,将倒计时字符串放入该标签中
 document.getElementById('mydate').innerhtml = str
   //调用setTimeout函数(定时器函数)每隔一秒钟调用countDown()实现倒计时
   setTimeout("countDown('2021-06-14')", 1000)
}

在这里插入图片描述

统计字符串中每个字母出现的次数

1、使用对象的思想:

//使用charAt()统计出现最多字符和次数
var str=prompt("请输入一个由字母组成的字符串")
var o={}
for(var i=0;i<str.length;i++){
    var chars=str.charAt(i)
    if (o[chars]) { //利用对象属性来查找元素
        o[chars]++ //存在 累加
    }else{
        o[chars]=1 //不存在 赋值为1
    }
}
console.log(o)

2、使用数组的思想:

//拿两个数组存放大小写字母出现的次数
var str=prompt("请输入一个由字母组成的字符串")
var lower=new Array(26)//存放小写字母
var upper=new Array(26)//存放大写字母
//初始化两个数组
for(var i=0;i<lower.length;i++){
    lower[i]=0
    upper[i]=0
}
for(var k=0;k<str.length;k++){
    if (str.charAt(k)>='a'&& str.charAt(k)<='z') {
        lower[str.charCodeAt(k)-97]++
    }else if (str.charAt(k)>='A'&&str.charAt(k)<='Z') {
        upper[str.charCodeAt(k)-65]++
    }
}
console.log(lower)
console.log(upper)

将十进制的整数转换成给定数制格式输出

//输入一个十进制的整数和一个数制(2-16),将该十进制的整数转换成对应格式输出
var m=parseInt(prompt("请输入一个整数"))
var k=parseInt(prompt("请输入数制(2-16)"))

var arr=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
var result=[] //存放数制转换的结果
var i=0
while(m!=0){   //对m进行数制转换 将余数放在resul数组中
    result[i]=m%k
    m=parseInt(m/k)
    i++
}
var str=''
if (k==8) {
    str+='0' //八进制以0开头
}else if (k==16) {
    str+='0X' //十六进制以0X开头
}
for(var j=i-1;j>=0;j--){  //要确保是逆序输出
    str+=arr[result[j]]   //将result数组的元素作为arr数组的索引下标
}
console.log("转换结果为:"+str)

以上是关于JavaScript内置对象的练习的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段12——JavaScript的Promise对象

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段

JavaScript 函数进阶函数(匿名回调递归函数)及相关练习

练习:不使用JavaScript内置的parseInt()函数,利用map和reduce操作实现一个string2int()函数