传统写法

function fn(param) {let p = param || 'hello';console.log(p);
}

上方代码中,函数体内的写法是:如果 param 不存在,就用 hello字符串做兜底。这样写比较啰嗦。

ES6 写法:(参数默认值的写法,很简洁)

function fn(param = 'hello') {console.log(param);
}

在 ES6 中定义方法时,我们可以给方法里的参数加一个默认值(缺省值):

  • 方法被调用时,如果没有给参数赋值,那就是用默认值;

  • 方法被调用时,如果给参数赋值了新的值,那就用新的值。

如下:

var fn2 = (a, b = 5) => {console.log('haha');return a + b;
};
console.log(fn2(1)); //第二个参数使用默认值 5。输出结果:6console.log(fn2(1, 8)); //输出结果:9

提醒 1

我们来看下面这段代码:

let x = 'smyh';
function fn(x, y = x) {console.log(x, y);
}
fn('vae');

注意第二行代码,我们给 y 赋值为x,这里的x是括号里的第一个参数,并不是第一行代码里定义的x。打印结果:vae vae

如果我把第一个参数改一下,改成:

let x = 'smyh';
function fn(z, y = x) {console.log(z, y);
}
fn('vae');

此时打印结果是:vae smyh

let fn2 = (a, b = 5, c) => {console.log(a, b, c)console.log(a + b + c)
};fn2(1, 5)fn2(1, 8)//1 5 undefined
//NaN
//1 8 undefined
//NaN

JavaScript 函数参数默认值相关推荐

  1. ES6-ES11-第一部分-let、const、解构赋值、模板字符串、简化对象写法、箭头函数、函数参数默认值、rest 参数、扩展运算符、Symbol、迭代器、生成器、Promise、Set、Map

    根据视频进行整理 [https://www.bilibili.com/video/BV1uK411H7on?p=1] 视频资源(百度网盘): 链接:[https://pan.baidu.com/s/1 ...

  2. C++ 笔记(13)— 函数(函数声明、函数定义、函数调用[传值、指针、引用]、函数参数默认值、函数重载)

    每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数. 1. 函数声明 函数声明告诉编译器函数的名称.返回类型和参数.函数声明包括以下几个部分: ret ...

  3. C++之函数参数默认值

    C++之函数参数默认值 1.参数默认值的指定方式 在 C++ 中,可以在函数声明时为参数提供一个默认值.这样在函数调用时,如果没有提供函数参数值,则使用默认值. e.g. 在函数声明时,指定参数默认值 ...

  4. c++函数参数默认值设置

    c++函数参数默认值设置 1,函数参数默认值在函数声明的参数列表上定义,函数定义不变: #include <iostream>using namespace std; int add(in ...

  5. ES6——函数参数默认值

    ES6 之前,不能直接为函数的参数指定默认值,ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面. function fun(x = 'Hello'){console.log(x); } f ...

  6. JavaScript中实现函数重载和参数默认值

    2019独角兽企业重金招聘Python工程师标准>>> 参数默认值是指在调用函数时,若省略了某个实参,函数会自动为该参数分配一个默认值,使得函数调用的方便性和灵活性大大提高. 举个例 ...

  7. ES6新特性之函数优化-参数默认值

    函数优化 在ES6中,对函数的操作做了优化,使得我们在操作函数时更加的便捷. 函数参数默认值 在ES6以前,我们无法给一个函数参数设置默认值,只能采用变通写法: function add(a , b) ...

  8. php函数的默认值,php函数指定默认值方法的小例子

    php函数指定默认值方法的小例子 本节内容: php函数指定默认值 在php编程中,为自定义函数设定默认值,当用户调用该函数时,如果不给参数指定值,参数会用默认值顶替. 例1, 复制代码 代码如下: ...

  9. ES6函数参数的解构赋值,以及2种设置参数默认值方法的区别

    文章目录 1. 函数参数的解构赋值方式 2. 函数参数解构设置参数默认值 1. 方法1 2. 方法2 3. 总结 1. 函数参数的解构赋值方式 下面代码中,函数add的参数表面上是一个数组,但在传入参 ...

  10. JavaScript 函数参数

    JavaScript 函数参数 JavaScript 函数对参数的值没有进行任何的检查. 函数显式参数(Parameters)与隐式参数(Arguments) functionName(paramet ...

最新文章

  1. 防火墙iptables之常用脚本
  2. 交换机定时自动备份配置文件的方法
  3. Spring5源码 - 04 invokeBeanFactoryPostProcessors 源码解读_1
  4. 鲶鱼效应:为什么要适当的贷款?
  5. 注意指针修饰符的准确含义
  6. java线程并发库之--线程同步工具Exchanger的使用
  7. Tecplot如何保存frame style 并调用frame style
  8. easyUI 日期控件修改...
  9. 今晚直播丨用高效的Oracle性能诊断工具,让运维工作轻松起来!
  10. 数据结构与算法 汉诺塔问题和列车车厢重排问题
  11. HDU_1874_畅通工程续_最短路问题
  12. knockout + require + director 构建单页面程序(director)
  13. 无源蜂鸣器c语言编程,无源蜂鸣器+LED
  14. 我分析了虎嗅网5万篇文章,发现这些秘密
  15. java big5_BIG5编码表
  16. Java中对象的逃逸分析
  17. Java后端开发之JSON入门
  18. Linux系统管理、系统安全命令概述
  19. JS实现数字自动转换人民币金额(自动格式化输入的数字/千位分隔符)
  20. Android studio下载插件失败问题

热门文章

  1. fiddler安装常见问题
  2. 注入漏洞之sql注入漏洞
  3. 集成Slice2Java插件
  4. 最新电视直播PHP源码V1.2
  5. git小乌龟下载及汉化
  6. yacc和lex细节解答以及实现反向自动微分
  7. 模仿人人网客户端应用源码
  8. python如何跳出函数_python如何跳出函数
  9. 从入门到高级Java书籍推荐
  10. ajax文件上传进度条实现