一、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函數將十進制數值轉換為其他進制數值。
原創文章,作者:MDGJ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/136694.html