一、JsNumber函数的概述
function JsNumber(num){
this.num=num
}
JsNumber是JavaScript的一个构造函数,它可以将一个字符串或数字类型的参数转换为一个JsNumber对象。该对象具有执行数学运算的方法,例如随机数生成、数值四舍五入、最大/最小值等计算。 以下是调用JsNumber函数的示例:
let num1=JsNumber(5)
let num2=JsNumber('18')
console.log(num1.num) //5
console.log(num2.num) //18
二、JsNumber函数生成随机数
JsNumber函数可以生成一个给定范围内的随机数。下面是代码示例:
JsNumber.prototype.randomNumber=function(min,max){
return Math.floor(Math.random()*(max-min+1)+min)
}
let num3=JsNumber(0)
console.log(num3.randomNumber(1,10)) //生成1到10之间的随机整数
以上代码中,我们将randomNumber函数添加到了JsNumber的原型上,表示所有JsNumber对象都可以调用该函数。使用Math.floor和Math.random函数可以生成给定范围内的随机整数。
三、JsNumber函数的数值四舍五入
JsNumber函数可以将一个数值四舍五入到指定的小数位数。下面是代码示例:
JsNumber.prototype.round=function(n=0){//n为小数位数,默认为0,即整数
return Math.round(this.num*Math.pow(10,n))/Math.pow(10,n)
}
let num4=JsNumber(3.1415926)
console.log(num4.round(2)) //3.14
以上代码中,我们将round函数添加到了JsNumber的原型上,表示所有JsNumber对象都可以调用该函数。使用Math.pow函数表示10的n次方,将数值四舍五入到指定的小数位数。
四、JsNumber函数求最大/最小值
JsNumber函数可以在给定的一组数值中找到最大/最小值。下面是代码示例:
JsNumber.prototype.max=function(){
let arr=[...arguments,this.num]
return Math.max.apply(null,arr)
}
JsNumber.prototype.min=function(){
let arr=[...arguments,this.num]
return Math.min.apply(null,arr)
}
let num5=JsNumber(80)
console.log(num5.max(90,70,100)) //100
console.log(num5.min(90,70,100)) //70
以上代码中,我们将max和min函数添加到了JsNumber的原型上,表示所有JsNumber对象都可以调用该函数。使用ES6中的扩展运算符...将this.num和传入的参数组合成一个数组,然后使用apply函数将数组元素作为参数传递给Math.max和Math.min函数。
五、JsNumber函数的进制转换
JsNumber函数可以将一个十进制数值转换为其他进制,例如二进制、八进制和十六进制。下面是代码示例:
JsNumber.prototype.toBinary=function(){
return (this.num>>>0).toString(2)
}
JsNumber.prototype.toOctal=function(){
return (this.num>>>0).toString(8)
}
JsNumber.prototype.toHex=function(){
return (this.num>>>0).toString(16)
}
let num6=JsNumber(168)
console.log(num6.toBinary()) //10101000
console.log(num6.toOctal()) //250
console.log(num6.toHex()) //a8
以上代码中,我们将toBinary、toOctal和toHex函数添加到了JsNumber的原型上,表示所有JsNumber对象都可以调用这些函数。使用toString函数将十进制数值转换为其他进制数值。