JS 练习题
1.排序数组(封装函数)
var arr = [91, 65, 6, 8, 7, 54, 32, 12];
// sort排序
function fun(str) {
str.sort(function(a, b) {
return a - b;
})
console.log(arr);
}
fun(arr)
//冒泡排序
function fun(str) {
for (var i = 0; i < str.length; i++) {
for (var j = 0; j < str.length; j++) {
if (str[j] < str[j + 1]) {
[str[j], str[j + 1]] = [str[j + 1], str[j]]
}
}
}
console.log(str);
}
fun(arr)
2.随机生成4位验证码,大写字母小写字母及数字可供随机选择(比如:nG3p)
var arr = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789';
for (var i = 1; i <= 4; i++) {
console.log(arr[parseInt(Math.random() * arr.length + 1)]);
}
3.获取设定时间之差,例如:09天01时10分12秒
var date = new Date();
var newday = new Date('2024-10-01 00:00:00');
var time = newday.valueOf() - date.valueOf();
var day = parseInt(time / 1000 / 60 / 60 / 24);
var shi = parseInt(time / 1000 / 60 / 60 % 60);
var fen = parseInt(time / 1000 / 60 % 60);
var miao = parseInt(time / 1000 % 60)
function fun(a) {
if (a < 10) {
a = '0' + a
}
return a;
}
console.log(fun(day) + '天' + fun(shi) + '时' + fun(fen) + '分' + fun(miao) + '秒');
4.随机输入0-10之间的数,猜数字(猜大了,猜小了,猜对了)
var a = Number(prompt('请输入一个数'));
var b = parseInt(Math.random() * 10 + 1)
console.log(b);
for (var i = 1; i <= 10; i++) {
if (a > b) {
console.log('猜大了');
} else if (a < b) {
console.log('猜小了');
} else if (a == b) {
console.log('猜对了');
break;
}
}
5.输入一个数来判断奇数和偶数
var num = Number(prompt("请输入一个数"))
//执行是可以直接打印,不用创建变量接受也可以
var str = num % 2 == 0 ? '是偶数' : '不是偶数';
console.log(str);
6.输入一个三位正整数来判断水仙花数
var shu = Number(prompt('请输入一个三位数'))
var a = parseInt(shu / 100) ** 3 + parseInt(shu % 100 / 10) ** 3 + (shu % 10) ** 3
== shu ? '是水仙花数' : '不是水仙花数';
console.log(a);
7.判断输入年份是不是闰年
var yer = Number(prompt("请输入一个数"));
if (yer % 4 == 0 && yer % 100 != 0) {
console.log('闰年');
} else if (yer % 400 == 0) {
console.log('超级闰年');
} else {
console.log('不是闰年');
}
8. 用户购买商品,三个商品中有一个超过50元,或者总价超过100元,即可以打八五折,否则不打折,输出最终商品价格
//a商品的的价格
var a = Number(prompt("请输入一个数"));
//b商品的的价格
var b = Number(prompt("请输入一个数"));
//c商品的的价格
var c = Number(prompt("请输入一个数"));
if (a > 50 || b > 50 || c > 50 || a + b + c > 100) {
console.log((a + b + c) * 0.85);
} else {
console.log(a + b + c);
}
9. 工资所得税工资超过1000的部分需要缴纳个人所得税(税率0.05),根据用户输入的工资,输出税后工资
var gongzi = Number(prompt("请输入一个数"));
if (gongzi > 1000) {
console.log(gongzi - (gongzi - 1000) * 0.05);
} else {
console.log('你不配');
}
10.用户输入一个数字,然后判断这个数字能否被5、6整除
var chu = Number(prompt("请输入一个数"));
if (chu % 5 == 0 && chu % 6 == 0) {
console.log('五六通吃');
} else if (chu % 5 == 0) {
console.log('五吃');
} else if (chu % 6 == 0) {
console.log('六吃');
} else {
console.log('都不吃');
}
11.找出1~1000之中,所有能被5整除,或者被6整除的数字。在控制台输出。
for (var i = 1; i <= 1000; i++) {
if (i % 5 == 0 || i % 6 == 0) {
console.log(i);
}
}
12.用户输入一个数字,列出所有它能够整除的数字。
var chu = Number(prompt("请输入一个数"));
for (var i = 1; i <= chu; i++) {
if (chu % i == 0) {
console.log(i);
}
}
13.求1~100的和
var num = 0;
for (var i = 0; i <= 100; i++) {
num += i
}
console.log(num);
14.求阶乘
var jie = Number(prompt("请输入一个数"));
var num = 1;
for (var i = 1; i <= jie; i++) {
// num *= i;
num = num * i;
}
console.log(num);
15.判断质数
var zhi = Number(prompt("请输入一个数"));
var sum = 0;
for (var i = 1; i <= zhi; i++) {
if (zhi % i == 0) {
sum++;
}
}
if (sum == 2) {
console.log('是质数');
} else {
console.log('不是质数');
}