美文网首页
ES6-参数处理

ES6-参数处理

作者: zhenghongmo | 来源:发表于2020-03-13 16:37 被阅读0次

默认参数值

  • 函数默认参数允许在没有值或undefined被传入时使用默认形参。
function sum(a=0,b=0){
    return a+b    
}
sum()   //0+0=0
  • 传入undefined或者其它假值
    • 只有传入undefined时候才会用默认值,传入其它假值,用的都是假值
function fn(a=1,b=2){
    console.log(a,b)
}
fn(undefined,null) //1,null
  • 在函数被调用时,参数默认值就会被解析,调用一次,解析一次
function append(value, array = []) {
  array.push(value);
  return array;
}

append(1); //[1]
append(2); //[2], 1不会保留在里面,再次解析array为[],所以返回的不是[1,2]
  • 非默认参数位于默认参数之后
function fn(x=1,y){
    return[x,y]
}

fn()   //[1,undefined]

剩余参数

  • 剩余参数语法允许我们将一个不定数量的参数表示为一个数组。

语法

function (a,b,...args){

}

如果函数的最后一个命名参数以...为前缀,则它将成为一个由剩余参数组成的<font color="red">真数组</font>

上面例子中args将收集该函数的第三个参数(因为第一个参数被映射到a,而第二个参数映射到b)和所有后续参数。

剩余参数和arguments对象的区别

  • 剩余参数只包含那些没有对应形参的实参,而arguments对应了传给函数的所有实参。
  • arguments是一个伪数组,而剩余参数是一个真数组

arguments从伪数组变成真数组

  1. let args = Array.prototype.slice.call(arguments)

  2. let args = Array.from(arguments)

  3. let args = [...arguments]

展开运算符

在函数调用时使用展开语法

  • 等价于apply的方法
funtion fn(x,y,z){

}
let args = [1,2,3];
fn.apply(null,args);
//等价于
fn(...args)

构造字面量数组时使用展开语法

var array1 = [1,2,3,4,5,6]
var [,,,...array2]=array1  //array2=[4,5,6]
var arr3=[0,...array1,7]   //array3=[1,2,3,4,5,6,7]

构造字面量对象时使用展开语法

var obj1 = {name: 'leo',age: 14}
var obj2 = {name:'tom', x:26}
var obj3 = {...obj1}   //{name: 'leo',age: 14}
var obj4={...obj1,...obj2}    //{name:'tom',age: 14 ,x:26}
//由于先传入obj1,再传入obj2,所以obj2会覆盖与obj1中相同的部分

相关文章

  • ES6-参数处理

    默认参数值 函数默认参数允许在没有值或undefined被传入时使用默认形参。 传入undefined或者其它假值...

  • 2019-01-24

    ES6-之 filter

  • ES6-默认参数和rest参数

    默认参数在ES5中没有提供直接在函数的参数列表中指定参数默认值的语法,想为函数参数指定默认值,一般通过如下方式实现...

  • 参数处理

    nodejs API querystring 对象 unescapeBuffer: [Function: unes...

  • ES6-函数参数的赋值

    函数参数的解构赋值: 函数参数解构赋值的默认值: 函数参数解构赋值的默认值undefined:

  • 常用的npm包

    命令行参数处理 nodejs 脚本,命令行参数处理,接受参数parse 可以使用 minimist 参数提示 co...

  • JavaScript学习 之 版本

    目录 引言 ECMAScript ES5-/-ES6-/-ES7 babelbabel-clibabel-node...

  • ES6-函数扩展(默认参数篇)

    1、默认参数用法 函数默认参数示例: 函数参数的默认值可以与解构赋值结合使用,此处的学习容易混乱,主要还是学以致用...

  • 参数返回与异常处理

    参数返回 异常处理 全局异常处理器

  • 网址参数处理

    NSString *codeStr = @"http://qzone.qq.com/?username=aaaa&...

网友评论

      本文标题:ES6-参数处理

      本文链接:https://www.haomeiwen.com/subject/nhoujhtx.html