凡科网官方网站,重庆网站公司设计,软件搭建公司,虚拟主机发布网站吗操作数组的方法 Array.prototype.toSorted(compareFn) //返回一个新数组#xff0c;其中元素按升序排序#xff0c;而不改变原始数组。 Array.prototype.toReversed() //返回一个新数组#xff0c;该数组的元素顺序被反转#xff0c;但不改变原始数组。 Array.prototype.to…操作数组的方法 Array.prototype.toSorted(compareFn) //返回一个新数组其中元素按升序排序而不改变原始数组。 Array.prototype.toReversed() //返回一个新数组该数组的元素顺序被反转但不改变原始数组。 Array.prototype.toSpliced(start,deleteCount,item1…,itemN) //返回一个新数组在给定索引处删除和/或替换了一些元素而不改变原始数组。 新增的这三个数组方法分别对标以下原有的以下三个方法它们与原先方法的区别就是执行它们并不会影响原先的数组
Array.prototype.sort(compareFn) Array.prototype.reverse() Array.prototype.splice(start,deleteCount,item1…,itemN) toSorted compareFn指定一个定义排序顺序的函数。如果省略则将数组元素转换为字符串然后根据每个字符的 Unicode 码位值进行排序。
compareFn(a, b) 返回值 排序顺序 0 a 在 b 后如 [b, a] 0 a 在 b 前如 [a, b] 0 保持 a 和 b 原来的顺序 const arr [5,7,8,61,24,32,42,35] //不传入参数 const sortArr1 arr.toSorted() //传入箭头函数 a:比较的第一个元素b:比较的第二个元素 const sortArr2 arr.toSorted((a,b)a-b)
console.log(arr) //[5, 7, 8, 61, 24, 32, 42, 35] console.log(sortArr1) //[24, 32, 35, 42, 5, 61, 7, 8] console.log(sortArr2) //[5, 7, 8, 24, 32, 35, 42, 61] toReversed const arr [5,7,8,61,24,32,42,35]
const reverseArr arr.toReversed()
console.log(arr) //[5, 7, 8, 61, 24, 32, 42, 35] console.log(reverseArr) //[35, 42, 32, 24, 61, 8, 7, 5] toSpliced start
从 0 开始计算的索引表示要开始改变数组的位置它会被转换为整数。
如果 start 0则从数组末尾开始计数使用 start array.length。 如果 start -array.length 或者省略了 start则使用 0。 如果 start array.length不会删除任何元素但该方法将表现为添加元素的函数添加提供的所有元素。 deleteCount 可选
一个整数指示数组中要从 start 删除的元素数量。
如果 deleteCount 被省略了或者如果它的值大于或等于由 start 指定的位置到数组末尾的元素数量将会删除从 start 到数组末尾的所有元素。但是如果你想要传递任何 itemN 参数则应向 deleteCount 传递 Infinity 值以删除 start 之后的所有元素因为显式的 undefined 会转换为 0。
如果 deleteCount 是 0 或者负数则不会删除元素。在这种情况下你应该指定至少一个新元素见下文。
item1, …, itemN 可选
元素将从 start 开始添加到数组当中。
如果你没有指定任何元素toSpliced() 只会从数组中删除元素。
const arr [5,7,8,61,24,32,42,35] //插入元素 const insertArr arr.toSpliced(0,0,7) //删除元素 const deleteArr arr.toSpliced(0,1)
//替换元素 const replaceArr arr.toSpliced(0,1,7)
console.log(arr) //[5, 7, 8, 61, 24, 32, 42, 35] console.log(insertArr) //[7, 5, 7, 8, 61, 24, 32, 42, 35] console.log(deleteArr) //[7, 8, 61, 24, 32, 42, 35] console.log(replaceArr) //[7, 7, 8, 61, 24, 32, 42, 35] 浏览器兼容性 操作数组方法
查找数组元素的方法 Array.prototype.findLast(compareFn) //方法反向迭代数组并返回满足提供的测试函数的第一个元素的值。如果没有找到对应元素则返回 undefined。 Array.prototype.findLastIndex() //方法反向迭代数组并返回满足提供的测试函数的第一个元素的下标索引。如果没有找到对应元素则返回 undefined。 callbackFn
数组中测试元素的函数。回调应该返回一个真值表示已找到匹配的元素否则返回一个假值。函数在被调用时会传递以下参数
element
当前遍历到的元素。
index
当前遍历到的元素的索引位置。
array
调用 findLast() 的数组本身。
findLast const arr [5,7,8,61,24,32,42,35]
console.log(arr.findLast(aa 5)) findLastIndex const arr [5,7,8,61,24,5,32,42,35]
console.log(arr.findIndex(aa 5)) //0
console.log(arr.findLastIndex(aa 5)) //5 浏览器兼容性 数组查找方法
二、WeakMap支持键值类型新增 新增Sybmol类型来作为WeakMap的Key,助于对象被垃圾收集 const symbol Symbol(‘foo’)
const weakMap new WeakMap()
weakMap.set(symbol,51)
weakMap.get(symbol) //51 浏览器兼容性 symbol01
symbol02
三、Hashbang 语法 Hashbang 注释是一种特殊的注释语法其行为与单行注释 (//) 完全一样只是它以 #! 开头并且只在脚本或模块的最开始处有效。注意#! 标志之前不能有任何空白字符。注释由 #! 之后的所有字符组成直到第一行的末尾只允许有一条这样的注释。JavaScript 中的 hashbang 注释类似于 Unix 中的 shebang它提供了一个特定的 JavaScript 解释器的路径用它来执行这个脚本。
// 写在脚本文件第一行 #!/usr/bin/env node ‘use strict’; console.log(1);
// 写在模块文件第一行 #!/usr/bin/env node export {}; console.log(1); 这样就可以直接运行脚本代码了
以前执行脚本
node demo.js
有了 hashbang 之后执行脚本
./demo.js 只有当脚本直接在 shell 中运行时Hashbang 语法才有语意意义其他环境下 JavaScript 解释器会把它视为普通注释。