004. ES6之函数的扩展
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之函数的扩展相关推荐
- ES6之函数的扩展(二)
主要讲解: 1. rest参数 2. 严格模式 3. name属性 -- 返回函数的函数名 4. 箭头函数 -- 用 "=>" 定义函数 1.rest参数 ...argume ...
- [ES6] 细化ES6之 -- 函数的扩展
函数参数的默认值 函数参数指定状认值 ES6 之前,不能直接为函数的参数指定默认值,如果定义了形参,不传递实参时导致形参为undefined,只能采用变通的方法. //ES5 function fn( ...
- 第十节:ES6为函数做了哪些扩展?
ES6一路扩展,字符串.数组.数值.对象无一"幸免",ES6说要雨露均沾,函数也不能落下,今天,就来讲解ES6对函数的扩展. 姿势准备好了吗?前方高能,第10节开讲...... 参 ...
- es6 箭头函数 rest参数 扩展运算符
Es6 箭头函数 语法: 普通函数: fn=function(){} 箭头函数: fn=()=>{} 特性: this是静态的,this始终指向函数声明时所在作用域下的this的值(使用call ...
- ES6学习(六)—函数的扩展
ES6学习(六)-函数的扩展 挑重点 文章只列举了一部分 完整版请看阮一峰ES6入门教程 点我查看阮一峰ES6入门教程 一.函数参数的默认值 二.rest 参数 ES6 引入 rest 参数(形式为- ...
- 重学ES6 函数的扩展(下)
尾调用优化 什么是尾调用 尾调用(Tail Call)是函数式变成的重要概念,本身很简单,就是指函数的最后一步,调用另一个函数. function f(x){return g(x) } // 函数最后 ...
- 【ES6】函数的拓展
[ES6]函数的拓展 一.函数参数的默认值 二.扩展运算符 三.箭头函数[重点!!!] 查看更多ES6教学文章: 参考文献 引言:ES6添加了函数的默认值的写法.rest参数.拓展运算符.箭头函数等特 ...
- ES6基础3(扩展)-学习笔记
文章目录 ES6基础3(扩展)-学习笔记 字符串扩展 数值扩展 函数扩展 扩展运算符 ES6基础3(扩展)-学习笔记 字符串扩展 //扩展//字符串扩展charAt(); //返回指定索引位置的字符 ...
- “睡服”面试官系列第十三篇之函数的扩展(建议收藏学习)
目录 1. 函数参数的默认值 1.1基本用法 1.2与解构赋值默认值结合使用 1.3参数默认值的位置 1.4函数的 length 属性 1.5作用域 1.6应用 2. rest 参数 3. 严格模式 ...
最新文章
- 哈佛终身教授:年轻人如何做科研?
- 设计模式:装饰者模式(Decorator)
- 【数据挖掘笔记十】聚类分析:基本概念和方法
- java 5 2_java 图形界面5.2
- 04-老马jQuery教程-DOM节点操作及位置和大小
- 锁屏快捷键_全面屏 iPhone 锁屏快捷键美化,让你的 iPhone 更特别
- 阿里巴巴 Arthas 3.1.5版本支持火焰图,快速定位应用热点
- Android系统对话框
- 单线程JavaScript
- lambda python aws_AWS Lambda Layer For Python Pakage
- ubuntu下安装redis及在php中使用
- linux下pwd命令学习
- 微信小程序使用wxParse解析html代码
- 弹簧管压力表设计报告
- Android实战开发-Kotlin教程(语法篇 1.1)
- SqLite3基本操作
- 软件测试之逻辑思维题
- 一个Python自动提取内容摘要的实践
- IT 女生对未来职业的一点思考
- 小程序引入第三方字体
热门文章
- 微机原理——移位指令
- psu是什么电脑配件_PSU的完整形式是什么?
- java bitset_Java BitSet cardinality()方法与示例
- cigarettes(香烟)
- ropgadgets与ret2syscall技术原理
- 一道面试题--两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同
- 《C++ Primer 第五版》(第5.1-5.6节) ——异常处理机制(try语句块,throw表达式和catch异常捕捉处理单元)
- C++总结8——shared_ptr和weak_ptr智能指针
- 正则表达式特别需要注意的点:“空“字符的匹配
- IA-32 Architecture: the function of segment regitster(CS DS SS ES)