ES6浅谈 -- 数组扩展

1.数组可以用spread参数合并,使用该参数要注意被合并的一定是一个数组对象。另外不管是数组合并还是数组拼接都是浅拷贝,实质是拷贝地址(引用)。

2.可以和解构赋值混用,如const [first, ...rest] = [1,2,3,4,5]; 还可以将字符串每个字符拆分然后变成数组元素。

3.Array.from(),将类数组对象和可遍历对象转成数组;Array.of(),将一组值转为数组,与Array不同的是,array只跟一个参数会认为输入了这个数组的长度,而array of则认为是输入了一个元素。

4.copyWithin(),将指定元素复制到其他元素的位置上去,第一位参数表示替换位置开始,第二位表示读取开始,第三位表示读取停止前(到这一位停止,不算入读取)。

5.find(),参数是回调函数,作用和indexOf接近,但返回的是元素;findIndex()返回下标,这两个方法的回调函数都可以接受三个参数,方法都可以接受第二个参数绑定this。与indexOf不同的是可以找NaN。

6.fill(),用于数组填充,一般用途是初始化新数组。entries(),values(),keys(),数组新方法,可以分别遍历出数组的键值对,值,键。通常在for..of中使用。

原文地址:https://www.cnblogs.com/harrywu96/p/12167981.html

时间: 2024-08-25 12:50:20

ES6浅谈 -- 数组扩展的相关文章

ES6浅谈--数组扩展、对象扩展

数组扩展 1.includes()方法,参数为要检测的值.includes方法有点像indexOf(),indexOf未检测到则返回-1,否则返回下标.includes则是返回true或false.includes可以检测NaN.第二个参数表示从什么位置检测. 2.flat和flatMap.flat负责把数组拉平,意思是一个二维数组调用flat方法会变成一维数组.参数传的是数组的维度.例如传2则表示将3维拉成1维.如果数组中有空位则跳过.flatMap有点像flat方法和Map方法的结合.先对每

ES6浅谈 -- 数值扩展,函数扩展

数值扩展: 1.trunc(),去小数,非数字先用Number()转,转不了返回NaN.sign(),判断正负或0,正返回1,负返回-1,转换同上.cbrt(),计算立方根,转换同上.clz32(),计算参数的32位无符号整数前导0的个数.imul(),计算32位带符号整数相乘所得.Math.fround方法返回一个数的32位单精度浮点数形式.Math.hypot方法返回所有参数的平方和的平方根.BigInt数据类型,整数无位数限制,可以非常大. 函数扩展: 1.在看到参数默认值的时候,没有什么

浅谈数组

数组 我们平常在书写代码的时候遇到需要使用多个数据,通过定义多个变量太麻烦了,所以就定义了数组. 数组的概念和作用 数组是一组数据的集合,用来存放多个数据.适用于需要操控多个数据,但是只能使用一个数据的情况. 数组的创建 字面量 var arr = []; 构造函数 var arr = new Array(); 注意事项 当两种方式创建数组,数组参数为1时,如下代码所示 var arr = [5]; //[5]代表数组里只有一个成员5 var arr1 = new Array(5);//[emp

ES6浅谈--const,数组解构

关于const: 1.const声明的基本类型的值不可重复声明,不可修改,声明之后需要初始化,声明存在暂时性死区,只在声明的块级作用域内有效. 2.const本质上确保的是变量的内存地址的数值不会被改动,所以对于基本类型的值来说,数值在栈中保存,不会被修改:但是对于对象来说,const声明的对象不可以被改变的是内存地址,数据存在堆中,是可以被修改的,如果想不被修改需要freeze. 3.冻结对象后不能新添加属性,但是还可以修改原有属性,所以需要彻底冻结所有属性. 4.浏览器环境下顶层对象和全局对

ES6浅谈--解构,字符串扩展

解构: 1.大括号在句首会被认为是代码块,通过加圆括号可以解决问题,但是在声明语句中不能加圆括号,只有在赋值语句的非模式部分可以. 2.数值和布尔值解构会先转换成对象,然后用其包装对象的toString方法取得值再赋值. 3.解构用途:交换变量值:函数返回多个值取值:参数定义:提取json数据:参数默认值:遍历map:模块方法. 字符串扩展: 1.大括号增加unicode范围识别,另外支持for of遍历字符串. 2.模板字符串可以用于输入html文本,用${}做变量识别,反引号用反斜杠转义,t

https://github.com/miaozhongfeng/my-repository.git浅谈数组求和java实验

          这次作业呢,我是用java来写的,虽然java只是自己假期里看的一点点,但是人总是要接触新事物的,应该不断向前.          说明:这次作业有一个遗憾,就是我花了一个下午真真没搞懂POI包的使用,是我的智商问题吗?由于作业提交比较急迫,暂时先放弃,用的java的文件流,男人嘛,就是要敢舍敢弃!(是我胡说八道的).当然,不搞懂它我是不会罢休的!拭目以待!          好了,不瞎扯了.进入正题吧.我用的编译软件是my Eclipse2014(这个软件不得不说:真TM好

浅谈数组与指针

对于一维数组与指针: 对于二维数组与指针:

【JAVA基础教程】-浅谈数组及其内存控制

在用JAVA数据前我们都知道必须要先对数组对象进行初始化.当数组的所有元素都被分配合适的内存空间,当制定了初始值时,数组初始化完成.程序以后将不能重新改变数组对象在内存中的位置和大小.那么: 1.JAVA数组为静态,即一旦初始化后,其长度是不可改变的. 2. 数组变量是引用变量,并不是数组对象本身. 3. 两种初始化方式: 动态初始化:指定数组的长度,初始值自动生成. 静态初始化:指定初始值,长度自动生成. 4. JAVA中,引用变量本身无需初始化,引用变量所引用的对象是需要初始化的. 5. 所

12.24 ES6浅谈--块级作用域,let

第一部分:ES6新增了块级作用域,let关键字用于声明变量,相较于var而言,let关键字不存在声明提前. 1.ES6真正的出现了块级作用域,使用双花括号括住并在其中用let声明变量,会存在暂时性死区,在作用域外面使用变量会报错. 2.在循环中,如for循环,let命令相较于var命令会更好,原因在于所声明的变量不会提前到全局.那么在循环结束以后再调用该变量将无法访问. 3.如果是使用var的for循环,如 var a = []; for (var i = 0; i < 10; i++) { a