2019独角兽企业重金招聘Python工程师标准>>>

1. 函数参数的默认值

ES6 允许为函数的参数设置默认值,

function log(x, y = 'World') {console.log(x, y);
}log('Hello') // Hello World
log('Hello', 'China') // Hello China
log('Hello', '') // Hello// 1. 参数变量是默认声明的,所以不能用 let 或 const 再次声明
function foo(x = 5) {let x = 1; // errorconst x = 2; // error
}// 2. 使用默认值时,函数不能有同名参数// 3. 参数默认值不是传值的,而是每次都重新计算默认值表达式的值
let x = 99;
function foo(p = x + 1) {console.log(p);
}
foo() // 100
x = 100;
foo() // 101

2. 与结构赋值默认值结合使用

function foo({x, y = 5}) {console.log(x, y);
}
foo({}) // undefined 5
foo({x: 1}) // 1 5
foo({x: 1, y: 2}) // 1 2
foo() // TypeError: Cannot read property 'x' of undefined// 提供函数默认值
function foo({x, y = 5} = {}) {console.log(x, y);
}
foo() // undefined 5

3. 参数默认值的位置

// 例一
function f(x = 1, y) {return [x, y];
}f() // [1, undefined]
f(2) // [2, undefined])
f(, 1) // 报错
f(undefined, 1) // [1, 1]// 例二
function f(x, y = 5, z) {return [x, y, z];
}f() // [undefined, 5, undefined]
f(1) // [1, 5, undefined]
f(1, ,2) // 报错
f(1, undefined, 2) // [1, 5, 2]

如果传入 undefined ,将触发该参数等于默认值, null 则没有这个效果

function foo(x = 5, y = 6) {console.log(x, y);
}foo(undefined, null)
// 5 null

4. 函数的 length 属性 是指没有指定默认值的参数个数

5. name 属性

6. 箭头函数

7. 双冒号运算符

转载于:https://my.oschina.net/u/3563169/blog/1861243

004. ES6之函数的扩展相关推荐

  1. ES6之函数的扩展(二)

    主要讲解: 1. rest参数 2. 严格模式 3. name属性 -- 返回函数的函数名 4. 箭头函数 -- 用 "=>" 定义函数 1.rest参数 ...argume ...

  2. [ES6] 细化ES6之 -- 函数的扩展

    函数参数的默认值 函数参数指定状认值 ES6 之前,不能直接为函数的参数指定默认值,如果定义了形参,不传递实参时导致形参为undefined,只能采用变通的方法. //ES5 function fn( ...

  3. 第十节:ES6为函数做了哪些扩展?

    ES6一路扩展,字符串.数组.数值.对象无一"幸免",ES6说要雨露均沾,函数也不能落下,今天,就来讲解ES6对函数的扩展. 姿势准备好了吗?前方高能,第10节开讲...... 参 ...

  4. es6 箭头函数 rest参数 扩展运算符

    Es6 箭头函数 语法: 普通函数: fn=function(){} 箭头函数: fn=()=>{} 特性: this是静态的,this始终指向函数声明时所在作用域下的this的值(使用call ...

  5. ES6学习(六)—函数的扩展

    ES6学习(六)-函数的扩展 挑重点 文章只列举了一部分 完整版请看阮一峰ES6入门教程 点我查看阮一峰ES6入门教程 一.函数参数的默认值 二.rest 参数 ES6 引入 rest 参数(形式为- ...

  6. 重学ES6 函数的扩展(下)

    尾调用优化 什么是尾调用 尾调用(Tail Call)是函数式变成的重要概念,本身很简单,就是指函数的最后一步,调用另一个函数. function f(x){return g(x) } // 函数最后 ...

  7. 【ES6】函数的拓展

    [ES6]函数的拓展 一.函数参数的默认值 二.扩展运算符 三.箭头函数[重点!!!] 查看更多ES6教学文章: 参考文献 引言:ES6添加了函数的默认值的写法.rest参数.拓展运算符.箭头函数等特 ...

  8. ES6基础3(扩展)-学习笔记

    文章目录 ES6基础3(扩展)-学习笔记 字符串扩展 数值扩展 函数扩展 扩展运算符 ES6基础3(扩展)-学习笔记 字符串扩展 //扩展//字符串扩展charAt(); //返回指定索引位置的字符 ...

  9. “睡服”面试官系列第十三篇之函数的扩展(建议收藏学习)

    目录 1. 函数参数的默认值 1.1基本用法 1.2与解构赋值默认值结合使用 1.3参数默认值的位置 1.4函数的 length 属性 1.5作用域 1.6应用 2. rest 参数 3. 严格模式 ...

最新文章

  1. 哈佛终身教授:年轻人如何做科研?
  2. 设计模式:装饰者模式(Decorator)
  3. 【数据挖掘笔记十】聚类分析:基本概念和方法
  4. java 5 2_java 图形界面5.2
  5. 04-老马jQuery教程-DOM节点操作及位置和大小
  6. 锁屏快捷键_全面屏 iPhone 锁屏快捷键美化,让你的 iPhone 更特别
  7. 阿里巴巴 Arthas 3.1.5版本支持火焰图,快速定位应用热点
  8. Android系统对话框
  9. 单线程JavaScript
  10. lambda python aws_AWS Lambda Layer For Python Pakage
  11. ubuntu下安装redis及在php中使用
  12. linux下pwd命令学习
  13. 微信小程序使用wxParse解析html代码
  14. 弹簧管压力表设计报告
  15. Android实战开发-Kotlin教程(语法篇 1.1)
  16. SqLite3基本操作
  17. 软件测试之逻辑思维题
  18. 一个Python自动提取内容摘要的实践
  19. IT 女生对未来职业的一点思考
  20. 小程序引入第三方字体

热门文章

  1. 微机原理——移位指令
  2. psu是什么电脑配件_PSU的完整形式是什么?
  3. java bitset_Java BitSet cardinality()方法与示例
  4. cigarettes(香烟)
  5. ropgadgets与ret2syscall技术原理
  6. 一道面试题--两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同
  7. 《C++ Primer 第五版》(第5.1-5.6节) ——异常处理机制(try语句块,throw表达式和catch异常捕捉处理单元)
  8. C++总结8——shared_ptr和weak_ptr智能指针
  9. 正则表达式特别需要注意的点:“空“字符的匹配
  10. IA-32 Architecture: the function of segment regitster(CS DS SS ES)