生成指定范围内的数字有时需要创建一个一定范围内的数字数组。例如,在选择生日时。这是最简单的方法。letstart=1900,end=2000;[...newArray(end+1).keys()].slice(start);//[1900,1901,...,2000]//也可以像这样,但是结果在大范围内不稳定Array.from({length:end-start+1},(_,i)=>start+i);复制代码使用值数组中的值作为函数的参数有时我们需要把值放在一个数组中,然后作为参数传递给函数。可以使用ES6语法仅使用扩展运算符(...)从数组中提取值:[arg1,arg2]=>(arg1,arg2)。constparts={first:[0,2],second:[1,3],};["Hello","World","JS","Tricks"].slice(...parts.second);//["World","JS","Tricks"]复制代码这个trick在任何函数中都适用,请继续看第3条。使用value数组中的值作为Math方法的参数当你需要的时候找到数组中数字的最大值或最小值,你可以这样做://找到元素中y位置最大的值constelementsHeight=[...document.body.children].map(el=>el.getBoundingClientRect().y);Math.max(...elementsHeight);//输出最大值constnumbers=[100,100,-1000,2000,-3000,40000];Math.min(...numbers);//-3000CopycodeFlattennestedarraysArray有一个名为Array.flat的方法,它采用表示深度的参数来展平Flat嵌套数组(默认为1)。但是如果你不知道深度怎么办,你只需要使用Infinity作为参数。还有一个很好的flatMap方法。constarrays=[[10],50,[100,[2000,3000,[40000]]]];arrays.flat(Infinity);//[10,50,100,2000,3000,40000]复制代码预防代码崩溃如果代码中出现不可预知的行为,后果是不可预知的,因此需要进行处理。例如,当你想要获取的属性是undefined或者null时,你会得到一个TypeError错误。如果你的项目代码不支持可选链,你可以这样做:constfound=[{name:"Alex"}].find(i=>i.name==='Jim');console.log(found.name);//TypeError:Cannotreadproperty'name'ofundefined复制代码可以避免constfound=[{name:"Alex"}].find(i=>i.name==='Jim')||{};console.log(found.name);//undefined复制代码不过这个要视情况而定,处理小规模的代码是没有问题的。处理它不需要太多代码。传递参数的好方法在ES6中,模板字面量(Templateliteral)可以作为函数的参数,不需要括号。这在格式化或转换文本时非常有用。constmakeList=(raw)=>raw.join().trim().split("n").map((s,i)=>`${i+1}.${s}`).join("n");makeList`Hello,WorldHello,World`;//1.Hello//2.World像魔术一样交换变量值变量可以通过解构赋值语法轻松交换。leta="hello";letb="world";//错误?a=bb=a//{a:'world',b:'world'}//正确?[a,b]=[b,a];//{a:'world',b:'hello'}复制代码屏蔽字符串有时我们需要屏蔽部分字符串,而不仅仅是密码。在下面的代码中,通过substr(-3)得到一部分字符串,即从字符串末尾开始3个字符,然后在剩下的位置填上自己喜欢的字符(比如用*)constpassword="hackme";password.substr(-3).padStart(password.length,"*");//***kmecopycode结论编码时需要保持代码整洁,注意技巧在编码中积累。并留意JavaScript中的新功能。感谢您的阅读,如果对您有帮助,请参考我们的开源项目,共同进步
