jsNumber函数的多方面阐述

发布时间:2023-05-20

一、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函数将十进制数值转换为其他进制数值。