JavaScript函数的定义和调用
//函数的定义和调用
// 1, 写一个函数计算1到n的和, 并返回结果打印出来; (n为函数参数)
function sum(n) {
var sum = 0;
for (var i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
var a = sum(10);
console.log(a)
// 2, 写一个函数计算n的阶乘, 并返回结果打印出来
function jc(n) {
var sum = 1;
for (var i = 1; i <= n; i++) {
sum *= i;
}
return sum;
}
console.log(jc(5))
// 3, 写一个函数计算两个数的最小公倍数; 并返回结果打印出来
function gbs(max, min) {
var i = max < min ? min : max;
while (true) {
if (!(i % max) && !(i % min)) {
return i;
}
i++
}
}
console.log(gbs(4, 5))
function gbs2(m, n) {
if (n > m) {
var tmp = m
m = n
n = tmp
}
for (var i = m; i <= m * n; i += m) {
if (!(i % m) && !(i % n)) {
return i
}
}
}
console.log(gbs2(2, 7))
// 4,向一个函数传入不定数量的数值求和。
function su() {
var result = 0;
for (var i = 0; i < arguments.length; i++) {
result += arguments[i];
}
return result;
}
console.log(su(4, 1, 2, 4));
// 1, 写一个函数判断一个年份是不是闰年
function years(year) {
if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) {
console.log(year + "是闰年")
return true
}
else {
console.log(year + "不是闰年")
}
}
years(2000);
// 2, 写一个函数判断一个数是不是素数(又称质数, 除了1和本身以外不再有其他数整除)
function isSu(Number1) {
for (i = 2; i < Number1; i++) {
if (Number1 % i == 0) {
return false
}
}
if (!Number1) {
return true
}
if (Number1 < 0) {
console.log("false")
}
return true
}
console.log(isSu(9) ? "是素数" : "不是素数")
// 3, 年月日分别为自定义函数的参数,判断某一个日期是否为合法的日期;
// 如: 2016年12月33日不是合法的日期
// 2016年11月13日是合法的日期
/* function days(y, m, d) {
if (y < 1 || m < 1 || m > 12 || d < 1 || d > 31) {
console.log("不是合法日期");
return false
}
//二月判断
if (m == 2) {
if (years(y)) {
if (d > 29) {
console.log("不是合法日期");
return false
}
else {
console.log("是合法日期");
return true
}
}
else {
if (d > 28) {
console.log("不是合法日期");
return false
}
else {
console.log("是合法日期");
return true
}
}
}
//判断有30的月份
switch (m) {
case 4: case 6: case 9: case 11:
if (d > 30) {
console.log("不是合法日期");
return false
}
else {
console.log("是合法日期");
return true
}
}
}
days(2024, 7, 28);
*/
/*
function checkDay(day, max) {
if (day > 0 && day <= max) {
console.log("当前日期合法")
}
else {
console.log("当前日期不合法")
}
}
function fn2(year, month, day) {
if (month > 0 && month <= 12) {
if (month == 2) {
if (fn(year)) {
checkDay(day, 29)
} else {
checkDay(day, 28)
}
} else {
switch (month) {
case 4: case 6: case 9: case 11:
checkDay(day, 30)
break
default: checkDay(day, 31)
}
}
}
}
fn2(2025, 7, 28)
*/
function fn0(year) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
return true
}
}
function fn1(day, max) {
if (day > 0 && day <= max) {
console.log("当前日期合法")
} else {
console.log("当前日期不合法")
}
}
function fn2(year, month, day) {
if (year > 0 && month > 0 && month <= 12) {
if (month == 2) {
if (fn0) {
fn1(day, 29)
} else {
fn1(day, 28)
}
} else {
switch (month) {
case 4: case 6: case 9: case 11:
fn1(day, 30)
break
default:
fn1(day, 31)
}
}
} else {
console.log("当前日期不合法")
}
}
fn2(2024, 2, 30)
// 用递归实现:
// 1, 计算1 + 2 + 3 +…+100的和
//sum(n) == sum(n-1) + n
function sum(n) {
if (n == 1) {
return 1;
}
else {
return sum(n - 1) + n;
}
}
console.log(sum(100));
// 2, 输入一个n, 打印n个hello world
function fn3(n) {
if (n == 1) {
return "hello world \n";
}
else {
return fn3(n - 1) + "hello world \n";
}
}
console.log(fn3(10));
// 1, 写个函数计算所有传入参数相乘的结果(参数数量不定)
function fn4() {
var result = 1;
for (var i = 0; i < arguments.length; i++) {
result *= arguments[i];
}
return result;
}
var res = fn4(1, 2, 3, 4, 2, 2)
console.log(res)
// 2, 写个函数实现加减乘除运算(两个操作数, 一个操作符)
function fn5(number1, number2, res) {
var result = 0;
switch (res) {
case '+': result = number1 + number2; break
case '-': result = number1 - number2; break
case '*': result = number1 * number2; break
case '/': result = number1 / number2; break
case '%': result = number1 % number2; break
default: console.log("false")
}
return result;
}
console.log(fn5(2, 5, '*'))
// 3, 写个函数实现n的阶乘
function factorial(n) {
if (n == 1) {
return 1;
}
else {
return factorial(n - 1) * n
}
}
console.log(factorial(3))
// 4, 找出0 - 100之间7的倍数,和包含7的数字
function fn6() {
for (var i = 1; i <= 100; i++) {
if (!(i % 7) || parseInt((i / 10)) == 7 || i % 10 == 7) {
console.log(i)
}
}
}
fn6()
// 5, 不用循环,计算0 - 100以内的数字和
function fn7(n) {
if (n == 0) {
return 0;
}
else {
return fn7(n - 1) + n;
}
}
console.log(fn7(100))
// 6, 制作一个简易计算器(计算两个数的加减乘除, 带可手动输入数字和运算符)
// 7, 兔子繁殖问题,设有一只新生兔子,从第四个月开始他们每个月, 月初都生一只兔子, 新生的兔子从第四个月月初开始又每个月生一只兔子按此规律,并假定兔子没有死亡, n(n <= 20)个月月末共有多少只兔子?
function fn8(n) {
if (n == 1 || n == 2 || n == 3) {
return 1
} else {
return fn8(n - 1) + fn8(n - 3)
}
}
console.log(fn8(20))
</script>
<!-- // 6, 制作一个简易计算器(计算两个数的加减乘除, 带可手动输入数字和运算符) -->
<input id="num1" type="text">
<select name="" id="tmp">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
<option value="%">%</option>
</select>
<input id="num2" type="text">
<button id="btn" type="button">=</button>
<input id="res" type="text" disabled>
<script>
function computer() {
var number1 = parseFloat(document.getElementById('num1').value)
var number2 = parseFloat(document.getElementById('num2').value)
var tmp = document.getElementById('tmp').value
var result;
switch (tmp) {
case '+':
result = number1 + number2;
break;
case '-':
result = number1 - number2;
break;
case '*':
result = number1 * number2;
break;
case '/':
result = number1 / number2;
break;
case '%':
result = number1 % number2;
break;
}
document.getElementById("res").value = result
}
document.getElementById("btn").onclick = computer
</script>
本文来自博客园,作者:苏沐~,转载请注明原文链接:https://www.cnblogs.com/sumu80/p/16529915.html