作者:DmitriPavlutin译者:前端小智来源:dmitripavlutin点赞再看,养成习惯本文已收录到GitHubhttps://github.com/qq44924588。..以前好评文章的更多分类,也整理了很多我的文档和教程资料。欢迎来到星和完美。面试时可参考考点复习。我希望我们能在一起。为了保证更好的可读性,本文采用意译而非直译。Infinity(无穷大)是JS中的一个特殊数字。它的特点是比任何有限数都大。如果我们对Infinity不了解,那么在遇到一些操作的时候,我们会觉得它很有趣。现在让我们看看JS中的Infinity属性,了解用例并解决一些常见的陷阱。一、无穷大(Infinity)的定义无穷大可分为正无穷大和负无穷大两种。在JS中对应的表示是:+Infinity(或Infinity)和-Infinity。这意味着Infinity和-Infinity(小于任何有限数的数)是number类型的特殊值:typeofInfinity;//=>'number'typeof-Infinity;//=>'number'Infinity是全局对象的一个??属性:window.Infinity;//=>Infinity此外,Number函数还有两个属性来表示正负无穷大:Number.POSITIVE_INFINITY;//=>InfinityNumber.NEGATIVE_INFINITY;//=>-Infinity2。数字很??大。几个例子LookLook:Infinity>100;//=>trueInfinity>Number.MAX_SAFE_INTEGER;//=>trueInfinity>Number.MAX_VALUE;//=>trueInfinity用作加法、乘法和除法等算术运算中的操作数有趣的效果when:Infinity+1;//=>InfinityInfinity+Infinity;//=>InfinityInfinity*2;//=>InfinityInfinity*Infinity;//=>InfinityInfinity/2;//=>Infinity一些Infinity操作得到一个有限的数:10/Infinity;//=>0有限数除以0得到无穷大结果:2/0;//=>Infinity对无限数的概念上不正确的操作会产生NaN。例如,你不能除以无穷大,也不能确定无穷大是奇数还是偶数:Infinity/Infinity;//=>NaNInfinity%2;//=>NaN2.1负无穷大负无穷大小于任何有限数。将-Infinity与某个有限数进行比较:-Infinity<100;//=>true-Infinity<-Number.MAX_SAFE_INTEGER;//=>true-Infinity<-Number.MAX_VALUE;//=>truewhile,负无穷大小于正无穷大:-Infinitytrue当使用不同的运算符操作数时,你也可能得到负无穷大:Infinity*-1;//=>-InfinityInfinity/-2;//=>-Infinity-2/0;//=>-Infinity3。判断无穷大还好Infinity等于同号的Infinity:Infinity===Infinity;//=>true-Infinity===-Infinity;//=>true但是前面的符号不相等,所以很容易理解:Infinity===-Infinity;//=>falseJSt有一个特殊函数Number.isFinite(value),用于检查提供的值是否有限:Number.isFinite(Infinity);//=>falseNumber.isFinite(-Infinity);//=>falseNumber.isFinite(999);//=>true4.InfiniteusecasewhenweneedtoinitializecalculationsinvolvingnumbercomparisonsInfinityvaluesareveryconvenientwhen.例如,当在数组中搜索最小值时:functionfindMin(array){letmin=Infinity;for(constitemofarray){min=Math.min(min,item);}returnmin;}findMin([5,2,1,4]);//=>1min变量初始化为Infinity。在第一次for()迭代中,最小值成为第一项。5.Infinity的一些陷阱我们可能不会经常使用Infinity值。但是,值得知道Infinity值何时出现。5.1.解析数据假设JS使用一个输入(POST请求、输入字段的值等)来解析一个数字。在简单的情况下,它会工作得很好:parseFloat('10.5');//=>10.5parseFloat('ZZZ');//=>NaN这里要小心,parseFloat()转换'Infinity'字符字符串被解析为实际的Infinity数:parseFloat('Infinity');//=>Infinity是另一种使用parseInt()解析整数的方法,它不能将'Infinity'识别为整数:parseInt('10',10);//=>10parseInt('Infinity',10);//=>NaN5.2JSON序列化JSON.stringify()将Infinity数字序列化为null。constworker={salary:Infinity};JSON.stringify(worker);//=>'{"salary":null}'salary属性值为Infinity但当字符串化为JSON时,"salary"值将变为null。5.3最大数溢出Number.MAX_VALUE是JS中最大的浮点数。为了使用比Number.MAX_VALUE更大的数,JS将数转为Infinity:2*Number.MAX_VALUE;//=>InfinityMath.pow(10,1000);//=>Infinity5.4MathfunctionJSnamedMath一些空间函数可以返回Infinity:constnumbers=[1,2];const空=[];Math.max(...数字);//=>2Math.max(...空);//=>-InfinityMath.min(...numbers);//=>1Math.min(...空);//=>Infinity在不带参数调用Math.max()时返回-Infinity,Math.min()相应地返回Infinity。如果您尝试确定一个空数组的最大值或最小值,您会对结果感到惊讶。综上所述,JS中的Infinity代表的是无限数的概念。任何有限数都小于Infinity,并且任何有限数都大于-Infinity。在JS中比较无穷大值很容易:Infinity===Infinityistrue。特殊函数Number.isFinite()确定提供的参数是否为有限数。当涉及比较数字的算法时,可以使用Infinite初始化变量,用例是查找数组的最小值。从输入解析数字时必须注意Infinity:Number('Infinity'),parseFloat('Infinity')返回实际的Infinity。当使用JSON.stringify()序列化时,Infinity变为null。原文:https://dmitripavlutin.com/in...代码部署后可能出现的bug无法实时获知。之后为了解决这些bug,花费了大量的时间在日志调试上。顺便在这里推荐一个不错的BUG监控工具Fundebug。交流文章每周更新。可以微信搜索“大千世界”阅读即时更新(比博文早一两篇)。本文已收录到GitHubhttps://github.com/qq449245884/xiaozhi。我的文档发表了很多,欢迎Star和完善,可以参考考试中心面试复习,关注公众号,后台会回复福利,福利可以看到,你知道。