1、写个函数计算所有传入参数相乘的结果(参数数量不定) //arguments
function fn() {
var result = 1
//遍历arguments 进行
for (var i = 0; i < arguments.length; i++) {
result *= arguments[i]
}
return result
}
console.log(fn(1, 2, 3));
2、写个函数实现加减乘除运算(两个操作数, 一个操作符)
方案1
var num1 = prompt('请输入第一个数字');
var str = prompt('请输入一个加减乘除的符号');
var num2 = prompt('请输入第二个数字');
function getNum(num1, num2) {
return [parseInt(num1) + parseInt(num2), num1 - num2, num1 * num2, num1 / num2];
}
var st = getNum(num1, num2);
if (str == '+') {
alert('第一个数字加上第二个数字等于:' + st[0])
} else if (str == '-') {
alert('第一个数字减去第二个数字等于:' + st[1])
} else if (str == '*') {
alert('第一个数字乘以第二个数字等于:' + st[2])
} else if (str == '/') {
alert('第一个数字除以第二个数字等于:' + st[3])
}
getNum(num1, num2);
方案2
function fn1(number1, number2, s) {
var result = 0
switch (s) {
case "+":
result = number1 + number2
break
case "-":
result = number1 - number2
break
case "*":
result = number1 * number2
break
case "/":
result = number1 / number2
break
default:
console.log('参数错误');
}
return result
}
console.log(fn1(38, 50, '+'));
3、写个函数实现n的阶乘 //递归
// n != n * (n - 1);
function mul(n) {
// n的阶乘
// var num = 1;
// for (var i = 1; i <= n; i++) {
// num *= i;
// }
if (n == 1 || n == 0) {
return 1;
}
return n * mul(n - 1);
}
console.log(mul(5));
4、找出0 - 100 之间7的倍数, 和包含7的数字 //函数套循环和判断
function fn3() {
for (var i = 1; i <= 100; i++) {
if (i % 7 == 0 || i % 10 == 7 || parseInt(i / 10) == 7) {
console.log(i)
}
}
}
fn3()
5、不用循环, 计算0 - 100 以内的数字和 //递归
function num(n) {
if (n == 0) {
return 0;
} else {
return n - 1 + num(n - 1);
}
}
console.log(num(101));
function num2(n) {
if (n == 1) {
return 1;
} else {
return n + num2(n - 1);
}
}
console.log(num2(100));
6、制作一个简易计算器( 计算两个数的加减乘除, 带可手动输入数字和运算符)
HTML内容
<select name="" id="s">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="text" id="number2">
=
<input type="text" id="result">
<button id="btn">计算</button>
JS内容
function computer() {
//获取俩个输入框的值
var number1 = document.getElementById('number1').value //string
var number2 = document.getElementById('number2').value //string
//获取下拉列表的值
var s = document.getElementById('s').value
//设置结果
document.getElementById('result').value = fn1(Number(number1), Number(number2), s)
}
//点击对应的按钮才进行操作
document.getElementById('btn').onclick = computer
7、兔子繁殖问题, 设有一只新生兔子, 从第四个月开始他们每个月, 月初都生一只兔子, 新生的兔子从第四个月月初开始又每个月生一只兔子按此规律, 并假定兔子没有死亡, n(n <= 20) 个月月末共有多少只兔子? //斐波拉契数列
function k(n) {
if (n <= 3) {
return 1;
} else {
return k(n - 3) + k(n - 1);
}
}
console.log(k(20));