ES6 函数默认值与作用域
来源:互联网 发布:大数据团队功能 编辑:程序博客网 时间:2024/06/05 17:00
作用域
函数参数默认值 实际上形成了一个单独的作用域,举个栗子:
let foo = 'outer'; function bar(func = () => foo) { let foo = 'inner'; console.log(func()); } bar(); // outer
在bar 中 的函数参数中的 foo 指向的是bar 中的foo,但是bar 中没有定义foo,所以向上指向的是全局的foo (outer)
如果在bar 中传入参数 foo, 那么结果就不一样了,栗子:
let foo = 'outer'; function bar(foo, func = () => foo) { var foo = 'inner'; console.log(func()); } bar(1); // 1
这里需要注意的是 内层foo 的定义不能用let ,因为在bar中已经定义了。
(怎么让foo 等于内层的foo? 这种问题和我们说的没什么太大联系了。一个方法是 不要让2个foo重名就好。)
利用函数默认值的应用
教程上的栗子:
function throwIfMissing() { throw new Error('Missing parameter');}function foo(mustBeProvided = throwIfMissing()) { return mustBeProvided;}foo()// Error: Missing parameter
需要注意的是,默认值总是在没有赋值的情况下调用。所以上述栗子如果foo传值了,那么 throwIfMissing函数不会运行。
阅读全文
0 0
- ES6 函数默认值与作用域
- ES6之块级作用域与函数声明--读书笔记
- ES6 函数参数默认值 default
- ES6 函数的参数设置默认值
- ES6 函数参数的默认值
- JS块级作用域与函数作用域–ES6 let
- es6 函数形参的默认值
- 19、ES6 函数的扩展---作用域(与文章案例有出入)
- ES6-函数的扩展-函数参数的默认值
- ES6中的作用域
- ES6中块级作用域
- ES6中块级作用域
- ES6箭头函数和它的作用域
- ES6箭头函数和它的作用域
- ES6,箭头函数解决this作用域问题
- ES6学习——新的语法:函数参数默认值
- ES6初探-let与块级作用域
- ES6 变量作用域与提升:变量的生命周期详解
- 简单的表单事件
- maven环境配置出错
- Android事件分发机制详解
- 使用AccessibilityService进行APK自动安装
- 教你一分钟实现动态模糊效果
- ES6 函数默认值与作用域
- Sublime Text 3报错Pylinter could not automatically determined the path to lint.py...
- 福利送上,2016 ChinaJoy一日游
- js使用深度优先遍历实现getElmentById(id)
- ActivityThread的main方法究竟做了什么?
- Dagger2这次入门就不用放弃了
- 你见过这样的单例模式吗?
- Retrofit项目封装使用
- Dialog、Toast、Snackbar,你真的了解它们吗?