【学习笔记16】JavaScript函数封装习题
2023-09-11 14:14:57 时间
1、书写一个函数, 求任意两个数字的和, 把结果以弹窗的形式展示
- 书写一个函数
- 需要参数吗? -->需要
- 需要几个参数? —>两个
- 函数要做什么? -->求和
- 然后弹窗的形式展示 -->alert(弹窗展示的值)
function fn(num1, num2) {
var sum = num1 + num2;
// 向浏览器弹窗
alert(sum); // 300
}
fn(100, 200);
2、书写一个函数, 求任意两个数字的和, 把结果打印在控制台
- 书写一个函数
- 需要参数吗? -->需要
- 需要几个参数? -->两个
- 函数要做什么? -->求和,打印在控制台
function fn(a, b) {
// 相当于钻了JS的漏洞
var sum = a + b;
console.log(sum);
}
fn(1, 2)
3、书写一个函数, 求任意两个数字的和, 把结果输出在页面上
- 书写一个函数
- 需要参数吗? -->需要
- 需要几个参数? -->两个
- 函数要做什么? -->求和,打印在页面
function fn(a, b) {
// 相当于钻了JS的漏洞
var sum = a + b ;
document.write(sum);
}
fn(1, 2)
function fn(n) {
// 计数器, 记录一下 if 是否执行
var sum = 100;
for (var i = 2; i < n; i++) {
if (n % i == 0) {
sum = 99
}
}
// 根据参数n是否为质数, 决定返回true还是false
if (sum == 100) {
// 如果sum == 100成立说明, for循环内部的if没有执行, 那么证明这个参数n 是质数
return true
} else if (sum == 99) {
// 如果sum == 99成立说明, for循环内部的if执行了!!! 那么证明这个参数n不是质数
return false
}
}
var myFn = fn(7) // true
console.log(myFn)
var myFn1 = fn(8) // false
console.log(myFn1)
4、判断一个数字是否为质数
1. 书写一个函数
2. 需要参数吗? ---> 需要
3. 需要几个参数? ---> 1个
4. 需要返回值吗? ---> 需要, 最好是返回布尔值! 是质数返回 true 不是返回 false
质数的概念
一个数, 除了1和它本身之外, 没有任何数能被他整除 ---> 这样的数字就是质数
一个数, 能给被除了1和它本身之外的某个数整除, ---> 这样的数字不是质数
7 / 2 3 4 5 6 ---> 7 是质数
8 / 2 3 4 5 6 7 ---> 8 不是质数
9 / 2 3 4 5 6 7 8 ---> 9 不是质数
// 循坏遍历 获取1~25的数字
for (var n = 1; n <= 25; n++) {
// 计数器
var sum = 0
for (var k = 2; k < n; k++) {
if (n % k == 0) {
sum = 100
}
}
if (sum !== 0) {
// console.log(n, '不是质数')
} else {
console.log(n, '是质数')
}
}
function fn(n) {
// 计数器, 记录一下 if 是否执行
var sum = 100;
for (var i = 2; i < n; i++) {
if (n % i == 0) {
sum = 99
}
}
// 根据参数n是否为质数, 决定返回true还是false
if (sum == 100) {
// 如果sum == 100成立说明, for循环内部的if没有执行, 那么证明这个参数n是质数
return true
} else if (sum == 99) {
// 如果sum == 99成立说明, for循环内部的if执行了!!! 那么证明 这个参数n不是质数
return false
}
}
var myFn = fn(7) // true
console.log(myFn)
var myFn1 = fn(8) // false
console.log(myFn1)
5、封装一个函数, 判断一个数字是否为 水仙花数
- 写个函数
- 需要参数? —> 需要
- 需要几个? —> 一个
- 需要返回值? —> 需要
- 返回什么? —> 布尔值
function fn () { }
var fn = function (n) {
// 拿到各个位置上的数字
var baiW = parseInt(n / 100)
var shiW = parseInt(n / 10 % 10)
var geW = n % 10
// 求各个位置上的数字的三次方 三个位置上三次方的和
var sum = baiW ** 3 + shiW ** 3 + geW ** 3
// 判断和是否等于它自身
// 根据参数n是否为水仙花数, 决定返回的布尔值, 是的话返回true, 不是返回false
if (sum == n) {
// 是水仙花数
return true
} else {
// 不是水仙花数
return false
}
}
var a = fn(154)
console.log(a)
6、封装一个函数, 对一个四位数字加密
加密规则:
1. 每一位上的数字+5 然后使用10的余数替代
2. 一三交换位置, 二四交换位置
举例:
输入1234
1. 每一位上的数字+5 ===> 6789
2. 使用10的余数代替 ===> 6789
3. 一三和二四交换位置 ===> 8967
输入 5655
1. 每一位上的数字 +5 ===> 0100
2. 使用10的余数代替 ===> 0100
3. 一三和二四 交换位置 ===> 0001 (这里需要打印0001, 不能打印1)
- 写一个函数
- 需要参数 —> 需要
- 需要几个参数? —> 1个
- 需要返回值? —> 需要
- 返回的是? —> 加密后的数据
function fn(n) {
var qianW = (parseInt(n / 1000) + 5) % 10;
var baiW = (parseInt(n / 100 % 10) + 5) % 10;
var shiW = (parseInt(n / 10 % 10) + 5) % 10;
var geW = (n % 10 + 5) % 10;
return ('' + shiW + geW + qianW + baiW - 0);
}
var sum = fn(1234);
console.log(1234, '加密后: ', sum);
7、封装一个函数, 求两个数字的最大公约数
- 写一个函数
- 需要参数吗? —> 需要
- 需要几个? —> 2个
- 需要返回值? —> 需要
- 返回什么? —> 最大公约数
function fn(a, b) {
/**
* 最大公约数
* 两个数的所有约数中, 相同的, 称之为两个数的公约数, 其中最大的哪一个为最大公约数
*
* 什么是约数
* 整数x除以整数y(y != 0) 除得的商正好是整数而没有余数,我们就说x能被y整除,或 y能整除x。
* x 称为y的倍数,y称为x的约数
*/
for (var i = a; i >= 1; i--) {
if (a % i == 0 && b % i == 0) {
return i;
}
}
}
var num = fn(8, 12);
console.log(num);
8、封装一个函数, 求两个数字的最小公倍数
// 封装一个函数, 求两个数字的最大公约数
function fn(a, b) {
/**
* 最大公约数
* 两个数的所有约数中, 相同的, 称之为两个数的公约数, 其中最大的哪一个为最大公约数
*
* 什么是约数
* 整数x除以整数y(y != 0) 除得的商正好是整数而没有余数,我们就说x能被y整除,或 y能整除x。
* x称为y的倍数,y称为x的约数
*/
for (var i = a; i >= 1; i--) {
if (a % i == 0 && b % i == 0) {
return i;
}
}
}
var num = fn(8, 12);
console.log(num);
// 封装一个函数, 求两个数字的最小公倍数
function fn1(a, b) {
/**
* 数学概念:
* a * b == 最大公约数 * 最小公倍数
* 8 * 12 == 4 * 24
* 96 == 96
*
* 根据数学概念 转换等式
* a * b == 最大公约数 * 最小公倍数
* a * b / 最大公约数 == 最大公约数 * 最小公倍数 / 最大公约数
* a * b / 最大公约数 == 最小公倍数
*/
return a * b / fn(a, b);
}
var myFn1 = fn1(8, 12)
console.log(myFn1)
相关文章
- JavaScript实现文字跑马灯
- 请用charAt获取javascript获取字符串指定位置字符
- 第一百四十一节,JavaScript,封装库--DOM加载
- Javascript中while和do-while循环用法详解
- [Javascript] Wait for the Fastest JavaScript Promise to Be Fulfilled with Promise.any()
- [Javascript] Wait for Multiple JavaScript Promises to Settle with Promise.allSettled()
- [Javascript] Link to Other Objects through the JavaScript Prototype Chain
- [Javascript] JavaScript赋值时的传值与传址
- [Javascript Crocks] Recover from a Nothing with the `alt` method
- [Javascript] Compose multiple functions for new behavior in JavaScript
- JavaScript文件操作(1)-基础
- [Javascript] Multiply Two Arrays over a Function in JavaScript
- [Javascript] Use JavaScript's for-in Loop on Objects with Prototypes
- [Javascript] Decorators in JavaScript
- [Javascript] Linting JavaScript with ESLint
- [Javascript] Hoisting in JavaScript
- [Javascript] Hositing
- Atitit.js javascript的rpc框架选型
- 使用Cordova将您的前端JavaScript应用打包成手机原生应用
- JavaScript练习:创建数组。并使用 for...in 声明来循环输出数组中的元素
- javascript中的bind
- 从零开始学_JavaScript_系列(21)——dojo(8)(手把手教你封装一个widget)
- python web py入门(53)- javascript - 对象
- web前端框架Javascript开发基础之JavaScript作用域