函数
来源:互联网 发布:大数据与银行 编辑:程序博客网 时间:2024/06/05 07:55
变量默认值
- 不能用let或const再次声明
- 参数默认值是惰性求值的
- 参数默认值可以与解构赋值的默认值,结合起来使用
- 指定了默认值以后,函数的length属性,将返回没有指定默认值的参数个数。也就是说,指定了默认值后,length属性将失真。
- 如果设置了默认值的参数不是尾参数,那么length属性也不再计入后面的参数了。
(function (a = 0, b, c) {}).length // 0(function (a, b = 1, c) {}).length // 1
es5中:
function a(x,y){ y=y||'aaa' console.log(y)}
es6:
function a(x,y='aaa'){ console.log(y)}
f(, 1) // 报错f(undefined, 1) // [1, 1]//如果传入undefined,将触发该参数等于默认值,null则没有这个效果。
一旦设置了参数的默认值,函数进行声明初始化时,参数会形成一个单独的作用域(context)。等到初始化结束,这个作用域就会消失。这种语法行为,在不设置参数默认值时,是不会出现的。
let x = 1;function f(y = x) { let x = 2; console.log(y);}f() // 1
var x = 1;function foo(x = x) { // ...}foo() // ReferenceError: x is not defined
var x = 1;function foo(x, y = function() { x = 2; }) { var x = 3; y(); console.log(x);}foo() // 3x // 1
rest参数
(function(a) {}).length // 1(function(...a) {}).length // 0(function(a, ...b) {}).length // 1
扩展运算符...
如同rest的逆运算
// ES5的写法function f(x, y, z) { // ...}var args = [0, 1, 2];f.apply(null, args);// ES6的写法function f(x, y, z) { // ...}var args = [0, 1, 2];f(...args);
0 0
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- java学习笔记之——文件输入流
- iOS开发 枚举类型NS_ENUM和NS_OPTIONS的区别
- 截取出字符串中某个字符串后面的数字
- tomcat发布修改浏览器中的标志以及登录页面监听回车键登录
- Netbeans X.1界面语言
- 函数
- Repo的理解及用法小结(2)
- Snackbar使用及其注意事项
- cvpr常用资源整理
- 蓝桥杯-格子输出
- Tensorflow 安装-pip
- Android开发时,那些相见恨晚的工具或网站!
- Android SystemProperties设置/取得系统属性的用法总结
- HTC Vive Unity 教程