当前位置: 首页 > 科技观察

不客气,教程难求的11个JavaScript技巧,求采纳

时间:2023-03-12 09:12:58 科技观察

今天小新就为大家整理出11个非常好用的JavaScript技巧。买不到就亏不了,就上不了当。来看看吧~1、Array.prototype.slice(begin,end)在获取数组最后一项并设置start参数和end参数时,具有切分数组的功能。但是,如果没有设置终止参数,函数会自动将其设置为数组的最大值。这个函数接受负值,这个我想很多人不理解,如果你把start参数设置为负数,你会得到数组的最后几个元素:vararray=[1,2,3,4,5,6];console.log(array.slice(-1));//[6]console.log(array.slice(-2));//[5,6]console.log(array.slice(-3));//[4,5,6]2.使用||运算符默认值。目前,ES6具有默认参数功能。要在旧浏览器中模拟此功能,您可以使用||(或运算符)默认为一个值,使其可用作第二个参数。如果第一个参数返回false,则第二个参数被认为是默认值。请看这个例子:functionUser(name,age){this.name=name||"OliverQueen";this.age=age||27;}varuser1=newUser();console.log(user1.name);//OliverQueenconsole.log(user1.age);//27varuser2=newUser("BarryAllen",25);console.log(user2.name);//BarryAllenconsole.log(user2.age);//253.重组数组元素在没有像Lodash这样的外部工具库的情况下重组数组元素?试试这个神奇的函数:varlist=[1,2,3];console.log(list.sort(function(){Math.random()-0.5}));//[2,1,3]4.短路情况如果你看到类似这样的代码:if(connected){login();}您可以组合变量(将被验证)和函数&&(AND运算符)来缩短上面的代码。例如,上面的代码可以缩短为一行:connected&&login();您可以执行相同的操作来检查对象中是否有属性或函数。类似如下代码:user&&user.login();5.截取数组这个技巧可以锁定数组的大小,可以根据你要设置的元素个数从数组中删除一些元素,非常有用。例如,如果您有一个包含10个元素的数组,但您只需要前五个元素,则可以通过设置array.length=5来截断数组并使其变小。请看下面的例子:vararray=[1,2,3,4,5,6];console.log(array.length);//6array.length=3;console.log(array.length);//3console.log(array);//[1,2,3]6.+运算符转换为数字的技巧真的很棒!操作起来很简单,但是只适用于str函数,否则会返回NaN(不是数字)。请看下面的例子:functiontoNumber(strNumber){return+strNumber;}console.log(toNumber("1234"));//1234console.log(toNumber("ACB"));//NaN这个技巧同样适用在这种情况下,它会返回时间戳:console.log(+newDate())//14612881643857。合并数组如果需要合并两个数组,可以使用Array.contat()函数:vararray1=[1,2,3];vararray2=[4,5,6];console.log(array1.concat(array2));//[1,2,3,4,5,6];但是,Functions不是合并大型数组的好工具,因为它在创建新数组时会使用大量内存。在这种情况下,可以使用Array.push.apply(arr1,arr2)而不是创建一个新数组。该函数会将第二个数组合并到第一个数组中,而不会占用太多内存:vararray1=[1,2,3];vararray2=[4,5,6];console.log(array1.push.apply(array1,array2));//[1,2,3,4,5,6];8、在循环中缓存array.length的技巧很简单,但是在循环中处理大数组时,对性能的影响会很大。要遍历数组,几乎每个人都会同时编写这样的代码:for(vari=0;i