前言Number和Math是JavaScript中的内置对象。Number数字类型是基本的数据类型,我们在开发过程中会经常用到,包括数字精度的格式化和字符转换字符串为数字等操作。Number有自己的属性值Number.EPSILON两个可表示数字之间的最小间隔。Number.MAX_SAFE_INTEGERJavaScript中的最大安全整数(2^53-1)。Number.MAX_VALUE可以表示的最大正数。最小的负数是-MAX_VALUE。Number.MIN_SAFE_INTEGERJavaScript中最小的安全整数(-(2^53-1)).Number.MIN_VALUE可以表示的最小正数,即最接近0的正数(实际上永远不会变成0).最大的负数是-MIN_VALUE。Number.NaN特殊的“非数字”值。Number.NEGATIVE_INFINITY溢出时返回的特殊负无穷大值。Number.POSITIVE_INFINITY溢出时返回的特殊正无穷大值。基本上是用newNumber实例化一个数字对象和Number强制一个数字字符串,这两个值不相等varvalue1=newNumber("123");this.value1=value1;console.log(`value1===123是${value1===123}`);//value1===123为假varvalue2=Number("123");this.value2=value2;console.log(`value2===123is${value2===123}`);//value2===123istrue//判断数字类型console.log(value1instanceofNumber);console.log(value2instanceofNumber);Number会将字符串转换为数字Number("123");//123Number("12.3");//12.3Number("12.00");//12Number("123e-1");//12.3数字("");//0号(空);//0号("0x11");//17号("0b11");//3Number("0o11");//9Number("foo");//NaNNumber("100a");//NaNNumber("-Infinity");//-InfinityNumber判断数字是否为NANletnumber1=newNumber("123");letnumber2=123;letnumber3="string";letnumber4=null;console.log(Number.isNaN(number1));//falseconsole.log(Number.isNaN(number2));//falseconsole.log(Number.isNaN(number3));//falseconsole.log(Number.isNaN(number4));//falseconsole.log(Number.isNaN(NaN));//trueNumber.isFinite是一个有限数console.log(Number.isFinite(1/0));//falseconsole.log(Number.isFinite(10/5));//trueconsole.log(Number.isFinite(0/0));//falseNumber.isInteger判断给定参数是否为整数functioncheckInteger(x,y){if(Number.isInteger(y/x)){return“整数”;}return"non-integer";}console.log(checkInteger(5,10));//"integer"console.log(checkInteger(5,11));//"non-integer"Number.isSafeInteger判断传入参数值是否为“安全整数”(safeinteger)备注:Number.isSafeInteger()方法用于判断传入参数值是否为“安全整数”(safeinteger)。安全整数是满足以下条件的整数:可以精确表示为IEEE-754双精度数,其IEEE-754表示不能是舍入任何其他整数以适合IEEE-754表示的结果。.例如,2^53-1是一个安全整数,它可以精确地表示为在任何IEEE-754舍入模式下都没有其他整数舍入到该整数。相比之下,2^53不是安全整数,它*可以用IEEE-754表示,但是2^53+1不能直接用IEEE-754表示,round-to-nearest和roundtozero中,它会四舍五入为2^53。安全整数是介于-(2^53-1)到2^53-1(含)范围内的整数。Number.isSafeInteger(3);//trueNumber.isSafeInteger(Math.pow(2,53));//falseNumber.isSafeInteger(Math.pow(2,53)-1);//trueNumber.isSafeInteger(NaN);//falseNumber.isSafeInteger(Infinity);//falseNumber.isSafeInteger("3");//falseNumber.isSafeInteger(3.1);//falseNumber.isSafeInteger(3.0);//trueNumber.parseFloat将字符串数字转换为数字Type注意:该方法可以将字符串解析为浮点数。此方法与全局parseFloat()函数相同,并且在ECMAScript6规范中(用于全局变量的模块化)。给定值解析成浮点数,如果不能解析成浮点数,则返回NaNfunctioncheckFloat(r){returnparseFloat(r);}console.log(checkFloat(4.567));//4.567console.log(checkFloat("4.567abcdefgh"));//4.567console.log(checkFloat("abcdefgh"));//NaNNumber.parseInt将数字字符串转换为整数/****Number.parseInt()*该方法根据指定的base[参数基数的值],将字符串[参数字符串的值]解析为整数。*@paramsstring:要解析的值。如果此参数不是字符串,则使用ToString抽象操作将其转换为字符串。此参数中的前导空格将被忽略。*@paramsradix:一个介于2和36之间的整数,表示字符串的基数(数学数字系统中的基数)。小心-默认情况下不是10。*从给定字符串解析的整数。如果基数小于11,第一个非空字符无法转换为数字,则返回NaN。***/functioncheckInt(x,base){constparsed=parseInt(x,base);如果(isNaN(已解析)){返回0;}returnparsed*100;}console.log(checkInt("0xF",16));//1500console.log(checkInt("321",2));//0Number.prototype.toFixed()将数字转换为字符串,返回指定小数点后位数的数字varnumObj=5.123456;varn=numObj.toFixed(2);//5.12Number.prototype.toPrecision()返回具有指定精度的数字对象的字符串表示varnumObj=5.123456;console.log("numObj.toPrecision()is"+numObj.toPrecision());//输出5.123456console.log("numObj.toPrecision(5)is"+numObj.toPrecision(5));//输出5.1235console.log("numObj.toPrecision(2)is"+numObj.toPrecision(2));//输出5.1console.log("numObj.toPrecision(1)is"+numObj.toPrecision(1));//输出5//注意:在某些情况下会以指数符号结尾returnsconsole.log((1234.5).toPrecision(2));//"1.2e+3"NumberconvertsDateobjectvard=newDate("December17,199503:24:00");控制台.log(数字(d));以Number类型结尾,用的最多的应该是:isNaN判断检查数字是否为非数字NANparseFloat将数字字符串转换为数字类型parseInt将字符串解析为整数toPrecision为数字方法,返回值的指定精度,包括小数位toFixed返回指定小数点的数字点精度,需要和toPrecision区分开来开源代码地址码云https://gitee.com/lewyon/vue-notegithubhttps://github.com/akari16/vue-note文章个人博客地址:简介javaScript中Number数字类型的基本方法欢迎关注公众号:程序员布欧,时不时更新一些前端介绍文章不容易,转载请注明出处和作者
