首页 > 编程知识 正文

扩展的赋值运算符的特点,强制类型转换运算符

时间:2023-05-05 09:10:21 阅读:8756 作者:1506

你好,我是一周,不想被喝(内卷)的前端。 如果写的文章能让你喜欢的话,我会非常幸运~

扩展运算符扩展运算符是可以就地扩展一个表达式的三个点。 如果需要多个参数(如调用函数)或多个值(如数组),则会将其转换为一组以逗号分隔的参数。

代码示例如下所示。

//定义数组letarr=[ 1,2,3,4,5,6 ]//使用扩展运算符. 控制控制台. log (. arr ); //1 2 3 4 5 6//函数functionfun(item ) ) console.log )…item ); (/调用函数fun (1,2,3,4,5,6 )/1 )2)5)letx=10ARR=[ . () ) x0? ['a'] : [] ),' b ',]; 控制台. log (arr ); //a b可以用扩展运算符展开数组,而不是apply ()方法,从而不需要apply方法,并将数组转换为函数的参数。

代码示例如下所示。

//函数定义functionfun(a、b、c、d、e ) (console.log ) a、b、c、d、e ); //数组letarr=[ 1,2,3,4,5 ]/es5定义调用方法fun.apply(null,arr )/1234 )/es6调用方法fun ) . arr )/1234 ) 5。 在实际开发中

letarr=[ 1,20,30,50,3,88,]//ES5的表述letmax=math.max.apply(null,arr ) console.log (最大值) ); //88 E的写法如下。

letarr=[ 1,20,30,50,3,88,]//ES6的表示letmax=math.max(arr ) console.log ) max ); //88扩展算子的应用扩展序列的应用主要体现在以下几个方面

复制数组

在ECMAScript 2015之前,您只是将arr1赋值给arr2,而修改arr2时,arr1也会发生变化。 这被称为浅复制。 示例代码如下。

首先,让我们来理解浓淡复印的概念:

深度复制:复制数组中元素的内容

浅副本:复制数组元素内容的内存地址

letarr1=[ 1,2,3,4,5 ] letarr2=arr1console.log (arr2); //1、2、3、4、5 (变更//arr 2数据内容的arr2(2)=6; //两者都更改console.log(arr1,arr2)//[ 1,2,6,4,5 ] [ 1,2,6,4,5 ]要完成深度复制,示例代码如下所示。

letarr1=[ 1,2,3,4,5 ] letarr2=[ ]/es5表示法for(letI=0; i arr1.length; I({arr2[I]=arr1[I]; }arr2[2]=6;//仅arr2更改console.log (arr 1,arr2);/[ 1,2,3,4,5 ] [ 1,2,6,4,5 ]/es6表示法arr2=[.arr1]arr2[2]=6;//仅arr2更改console.log (arr 1,arr2); //[ 1,2,3,4,5 ] [ 1,2,6,4,5 ]组合数组

扩展运算符提供了数组合并的新写法。 代码示例如下所示。

const arr1=['a ',' b']; const arr2=['c']; const arr3=['d ',' e']; //ES5的合并数组console.log(arr1.concat ) arr3,arr3); //[ 'a '、' b '、' c '、' d '、' e' ]//ES6的合并数组console.log(…arr1、arr2、…arr3) ); //[ 'a '、' b '、' c '、' d '、' e' ]值得注意的是,两者都是浅拷贝

与解除结合赋值组合使用

扩展运算符可与构造赋值结合使用,用于生成数组(用于获取其馀数据)。注意:扩展运算符只能放在最后。

代码示例如下所示。

//场景分析: letarr=[ 1,2,3,4,5 ] let first,rest,取数组的第一个和最后一个值; //ES5的写法:借用Array.slice (函数first=arr[0]rest=arr.slice(1)1) console.log ) first,rest ); //1 [ 2,3,4,5 ]//es6的写法[first, rest]=arrconsole.log(first,rest ); //1 [ 2,3,4,5 ]将字符串拆分为数组

扩展运算符还可以将字符串转换为真正的数组。 代码示例如下所示。

let str='狐妖小红娘' console.log([.str]; //“狐”、“妖”、“小”、“红”、“女儿”(] 往期推荐

【建议集合】总结了42种前端常用布局方案JS高级别必需会议的5个高阶函数JS高级别图解ES6以前的6种继承方式v-model语法糖的知识点,这次应该说是全部

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。