ES6函数增强

  函数参数可以拥有默认值。当我们调用函数时,如果没有进行相应的实参传递,函数就会使用参数的默认值。功能很强大,使用 却非常简单,只要在声明函数时候,给形参赋一个值就可以了,这个值就是该参数的默认值。

// num2拥有默认参数值5,如果没有给num2形参传递值,它的取值将会是5
function sum (num1, num2 = 5) {
    return num1 + num2;
}

console.log(sum(1)) //6 调用sum函数时, 只传递了一个参数1,所以函数中num1 =1, num2就会使用默认参数,取值为5, 1+5 =6;
console.log(sum(1,2))  // 3 函数调用时,我们传递了两个参数,所以默认参数不起作用, 函数使用我们传递过去的参数 1+2 =3

  默认参数值,不仅可以像上面一样使用原始值,还可以使用js表达式。

//参数second的默认值,就是js表达式,取值为第一个参数的值。
function add(first, second = first) {
    return first + second;
}
console.log(add(1, 1)); // 2
console.log(add(1)); // 2

  甚至还可以使用函数表达式

function getValue(value) {
  return value + 5;
}
//参数second的默认值,就是函数表达式,函数参数是第一个参数的值。
function add(first, second = getValue(first)) {
    return first + second;
}
console.log(add(1, 1)); // 2
console.log(add(1)); // 7

  对于这个函数式的默认参数,函数的调用是惰性的,如果我们调用函数时,传递了两个参数add(1,1),函数的默认参数值是用不到的,所以函数不会调用。只有传递一个参数的时候add(1), 函数的默认参数值才会用到,作为默认参数值的函数才会调用。

  对于 js 表达式方式的默认参数,我们一定要注意参数的作用域。

时间: 2024-10-13 13:52:29

ES6函数增强的相关文章

ES6函数扩展

前面的话 函数是所有编程语言的重要组成部分,在ES6出现前,JS的函数语法一直没有太大的变化,从而遗留了很多问题和的做法,导致实现一些基本的功能经常要编写很多代码.ES6大力度地更新了函数特性,在ES5的基础上进行了许多改进,使用JS编程可以更少出错,同时也更加灵活.本文将详细介绍ES6函数扩展 形参默认值 Javascript函数有一个特别的地方,无论在函数定义中声明了多少形参,都可以传入任意数量的参数,也可以在定义函数时添加针对参数数量的处理逻辑,当已定义的形参无对应的传入参数时为其指定一个

ES6函数参数解构

ES6函数参数解构 常规的JavaScript若要给函数传递的参数是一个对象,需要像下面这样来实现: function sayName(person) { if(Object.prototype.toString.call(person) == '[object Object]') { console.log( `${person.firstName} ${person.lastName}`); } } sayName({firstName: 'Stephen', lastName: 'Curr

转的es6 =>函数

原文地址 箭头函数=>无疑是ES6中最受关注的一个新特性了,通过它可以简写 function 函数表达式,你也可以在各种提及箭头函数的地方看到这样的观点--"=> 就是一个新的 function". 箭头函数的句法规则甚至早已延伸到各项标准和技术文档中去了,虽然它早已不稀奇,却给我们一种刚刚发现的新鲜感. 粉我的人都知道俺因为某些原因不怎么喜欢 => 的语法,不过别担心,本文并非讲述我为何不喜欢它,如果你对这个观点感兴趣,可以查看我<YDKJS:ES6 &

es6函数的rest参数和拓展运算符(...)的解析

es6的新特性对函数的功能新增加了rest参数和...的拓展运算符.这是两个什么东西呢? 先来看一个问题:如何获取一个函数除了定义的参数之外的其他参数?传统的做法是借助函数的arguments关键字来获取的. 方法如下: function add(a,b){ var i=2,rest=[]; if(arguments.length>2){ for(i;i<arguments.length;i++){ rest.push(arguments[i]); } } return rest; } con

ES6函数的扩展

1.运用ES6的默认参数 2.|| 和  |     && 和  & 什么区别? https://zhidao.baidu.com/question/2118237346586349547.html a||b  a为true的话后面就不执行了a|b   a为true的话后面继续判断ba&&b   a如果是false 后面的b就不去判断a&b   a如果是false 后面继续判断b 3.rest参数(形式为"...变量名")可以称为不定参数

es6函数写法

1.普通函数的定义,用箭头函数表示,DemoFunction是函数名,括号表示参数,大括号表示函数体的内容. 1 2 3 let DemoFunc = (param) => {     console.log(param) } 2.map函数在es6中的写法,同样也是箭头函数,e表示map出来的元素,key表示当前id 1 2 3 Array.map((e, key) => {     console.log(e, key) }) 3.类内函数的写法. 1 2 3 4 5 class Func

深入理解javascript函数系列第四篇——ES6函数扩展

× 目录 [1]参数默认值 [2]rest参数 [3]扩展运算符[4]箭头函数 前面的话 ES6标准关于函数扩展部分,主要涉及以下四个方面:参数默认值.rest参数.扩展运算符和箭头函数 参数默认值 一般地,为参数设置默认值需进行如下设置 function log(x, y) { y = y || 'World'; console.log(x, y); } 但这样设置实际上是有问题的,如果y的值本身是假值(包括false.undefined.null.''.0.-0.NaN),则无法取得本身值

ES6函数剩余参数(Rest Parameters)

我们知道JS函数内部有个arguments对象,可以拿到全部实参.现在ES6给我们带来了一个新的对象,可以拿到除开始参数外的参数,即剩余参数(废话好多 O(∩_∩)O~). 这个新的对象和arguments不一样,它是程序员自定义的一个普通标识符,只是需要在前面加上三个点:... function func(a, ...rest) { console.log(a) console.log(rest) } func(1) func(1, 2, 3, 4) 注意func的第二个参数rest,前面有三

Makefile学习之路5——通过函数增强功能

通过函数能显著增强Makefile的功能.对于simple项目的Makefile,尽管使用了模式规则,但还是有一件比较麻烦的事情,就是要在Makefile中指明每一个项目源文件.下面介绍几个后期会使用到的函数,更多请参考<GUN Make>. 1.abspath函数 从命名就应该能够猜出它的作用.abspath函数用于将_name中的各路径名转化成绝对路径,并将转化后的结果返回.调用形式为: $(abspath _name) 1 .PHONY: all 2 root :=$(abspath /