阶乘
问题 1:
请补全JavaScript函数,要求返回数字参数的阶乘。
注意:参数为大于等于0的整数。
function _factorial(number) { // 补全代码 if(number==1){ return 1; } else{ return number*_factorial(number-1); } }
总结:
🥭🥭1、当传递进来的number为1的时候直接return 1【返回为1】,因为1的阶乘为1。
🥭🥭2、当传递进来的参数number不为 1 ,也就是else里面情况,每次迭代 函数(number-1),number会慢慢减少,等到number直接返回1【return 1】
绝对值
问题 2:
请补全JavaScript函数,要求返回数字参数的绝对值。
function _abs(number) { // 补全代码 return Math.abs(number); }
总结:
🥭🥭一、abs是absolute的缩写,是Math里面的一个方法,除了abs还有其他方法,例如。
1.Math.abs() Math.abs()函数,返回一个数的绝对值 Math.abs(-10) // 10
2.Math.ceil() Math.ceil()函数,返回大于或等于一个给定数的最小整数。 Math.ceil(5.4) // 6
3.Math.cos() Math.cos()函数,返回一个值的余弦值。 Math.sin(90 * Math.PI / 180) // 1
4.Math.floor() Math.floor()方法,返回小于或等于一个给定数字的最大整数 Math.floor(5.7) // 5 Math.floor(8.6) // 8
幂
问题 3:
请补全JavaScript函数,要求返回底数为第一个参数,幂为第二个参数的数值。
解答:
function _pow(number,power) { // 补全代码 if (power === 0) { return 1 } let res = number for (let i = 1; i < power; i++) { res *= number } return res }
总结:
🥭🥭1、2^3= 2 * 2 * 2=8,for循环当,有多少循环多少次。方法很多,经供参考。例如:
function _pow(number,power) { // 补全代码 return power = 0? 1 : number *=number }
🍓💖🍓💖 可能有些小伙伴power = 0? 1 : number *=number不太明白,这是一个三元运算符。
当power=0为真则为1,否则则执行number *=number
条件表达式?True:False
平方根
问题 4:
请补全JavaScript函数,要求返回数字参数的平方根。
注意:只需检测基本数据类型。
解答:
function _sqrt(number) { // 补全代码 return Math.pow(number,0.5); }
总结:
🥭🥭1、Math.pow(number,0.5);
🥭🥭 2、0.5改为2 就是平方跟,改为3就是立方跟。
当然也有复杂的解法:
function _sqrt(number) { // 补全代码 let sum = number while(true) { number-- if(number > 0) { if (sum%number === 0){ return number } } else { return false } } }
余数
问题 5:
请补全JavaScript函数,要求返回数字参数除以2的余数。
解答:
function _remainder(value) { // 补全代码 return value-(value>>2); }
总结:
🥭🥭1、除了上面之外还有很多种方法。例如
return value - @ * parseInt(value / 2) return value % 2 //对2取余数
数据类型转换
问题 6:
请补全JavaScript函数,要求以字符串的形式返回数字参数所对应的星期。
示例:
1、_getday(1) -> “星期一”
2、 _getday(7) -> “星期天”
解答:
function _getday(value) { // 补全代码 var map = { 1:'一', 2:'二', 3:'三', 4:'四', 5:'五', 6:'六', 7:'天' } return '星期'+map[value]; }
总结:
🥭🥭方法很多,你还可以这样
function _getday(value) { // 补全代码 return `星期${[,'一','二','三','四','五','六','天'][value]}` }
function _getday(value) { // 补全代码 let dayData = ['一','二','三','四','五','六','天']; return '星期' + dayData[value - 1] }
从大到小排序
问题 7:
请补全JavaScript函数,要求将数组参数中的数字从大到小进行排序并返回。
function _sort(array) { return array.sort((a,b) => b - a); }
总结:
🥭🥭排序有很多种方法,但是最主要的只有两种,上面一种是自带的sort排序。下面来看选择排序和冒泡排序吧
选择排序
// 法一:选择排序 function _sort(array) { for(let i = 0; i < array.length; i++) { for(let j = i + 1; j < array.length; j++) { if(array[i] < array[j]) { let temp = array[i]; array[i] = array[j]; array[j] = temp; } } } return array; }
冒泡排序
function _sort(array) { for(let i = 0; i < array.length; i++) { for(var j = 0; j < array.length - i - 1; j++) { if(array[j] < array[j + 1]) { let temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } return array; }
大写字符串
问题 6:
请补全JavaScript函数,要求将字符串参数转换为大写字符串并返回。
function _touppercase(string) { const arr = [] for(let i = 0; i < string.length; ++ i) { const codePoint = string.codePointAt(i) if(codePoint >= 97 && codePoint <= 122) { const charactor = String.fromCodePoint(codePoint - 32) arr[i] = charactor } else { arr[i] = string.charAt(i) } } return arr.join('') }
总结:
难道这么繁琐,当然不是,在Javascripts中早已经封装好了toUpperCase()
方法,只需要拿来用就可以了。
function _touppercase(string) { // 补全代码 return string.toUpperCase(); }
Math部分常用方法总结
🥭🥭一、abs是absolute的缩写,是Math里面的一个方法,除了abs还有其他方法,例如。
1.Math.abs() Math.abs()函数,返回一个数的绝对值 Math.abs(-10) // 10
2.Math.ceil() Math.ceil()函数,返回大于或等于一个给定数的最小整数。 Math.ceil(5.4) // 6
3.Math.cos() Math.cos()函数,返回一个值的余弦值。 Math.sin(90 * Math.PI / 180) // 1
4.Math.floor() Math.floor()方法,返回小于或等于一个给定数字的最大整数 Math.floor(5.7) // 5 Math.floor(8.6) // 8