当前位置: 首页 > Web前端 > JavaScript

JS笔记-数值比较

时间:2023-03-27 17:21:03 JavaScript

1.简单循环算法代码如下:constnumbers=[5,6,2,3,7];让最大值=-无穷大;for(leti=0;imax)max=numbers[i];}Infinity概述全局属性Infinity是表示无穷大的值。请注意,Infinity的初始值为Number.POSITIVE_INFINITY。无穷大(正无穷大)大于任何值。在ECMAScript5规范中,Infinity是只读的。示例console.log(Infinity);/*无穷大*/console.log(Infinity+1);/*无穷大*/console.log(Math.pow(10,1000));/*无穷大*/console.log(Math.log(0));/*-Infinity*/console.log(1/Infinity);/*0*/2.Math.max()1.概述Math.max()函数返回最大数。2、参数value1,value2,…,valueN0是一个或多个数,将从中选择,返回最大值。3.返回给定值中的最大数。如果任何参数无法转换为数字,则返回NaN。如果未提供参数,则返回-Infinity。4.说明Math.max.length为2,这多少说明它是设计来处理至少两个参数的。例子:Math.max(10,20);//20Math.max(-10,-20);//-10Math.max(-10,20);//205.比较数组中值的大小constnumbers=[5,6,2,3,7];letmaxNum=Math.max(...numbers)展开语法/展开运算符...概述展开语法(Spreadsyntax),可用于函数调用/数组构造,在语法层面展开数组表达式或字符串;构造文字对象时,也可以通过键值对对象表达式进行扩展。(字面量一般指[1,2,3]或{name:"mdn"},简洁的构造方法)。语法函数调用:myFunction(...iterableObj);文字数组构造或字符串:[...iterableObj,'4',...'hello',6];在构造文字对象、克隆或属性Copy时:letobjClone={...obj};展开语法与Object.assign()相同,进行浅拷贝(只遍历一层)。3.Function.prototype.apply()1.概述apply()方法调用具有给定this值的函数,并以数组(或类数组对象)的形式提供参数。2.参数apply(thisArg,argsArray)thisArg,func函数运行时使用的this值。如果此函数处于非严格模式,则指定null或undefined将自动替换为指向全局对象。argsArray,可选,一个数组或类数组对象,其元素将作为单独的参数传递给func函数。如果此参数的值为null或undefined,则表示不需要传入任何参数。3.返回值是使用指定的this值和参数调用函数的结果。4.使用apply将数组项添加到另一个数组array.push.apply(array1,array2);对于一些需要写循环遍历数组项的需求,我们可以使用apply来避免循环。constnumbers=[5,6,2,3,7];//使用Math.min/Math.max和apply函数时的代码letmax=Math.max.apply(null,numbers);//基本等同于Math.max(...numbers)usesapplytochainconstructors//创建全局Global_Objects/Function对象的构造方法,以允许我们在构造函数中使用类数组对象而不是参数列表。函数MyConstructor(){for(letnProp=0;nPropMath.max(a,b),-Infinity);5.数组被切块后,在循环中传递目标1.概述以上四种方法都有超过JavaScript引擎参数长度限制的风险。向一个方法传递过多参数(比如10,000个)的后果在不同的JavaScript引擎中表现不同。如果您的参数集非常大,可以选择此方法。JavaScriptCore引擎中的参数数量有一个硬编码上限:65536。2.示例functionminOfArray(arr){letmin=Infinity;常数量子=32768;for(leti=0,len=arr.length;i