[JavaScript]ES6的函数拓展

function count(x, y) {

x = x??0;

y = y??0;

return x + y;

}

count(3);//3

ES6写法

ES6的写法简洁易读,能够让其他开发者快速了解参数类型,是否可省等信息,也不会对函数体代码造成过多负担,有利于后期优化重构

function count(x = 0, y = 0) {

return x + y;

}

count(3);

注意事项

1.使用默认参数,在函数体内不能重新命名同名变量

function count(x = 0, y = 0) {

let x;//报错

const y;//报错

}

参数默认值不是传值的,而是每次都重新计算默认表达式的值,也就是说参数默认值是惰性求值的

let num = 1;

function count(x = num + 1, y = 0) {

return x;

}

count();//2

num = 99;

count();//100

参数也可以作为默认值,但是要注意顺序

正确示例

function fn(x = 10, y = x) {

console.log(x, y);

}

fn(20);//20 20

fn();//10 10


错误示例

function fn(x = y, y = 10) {

console.log(x, y);

}

fn();//报错

参数默认值为变量时,如果外部作用域有对应变量,那么这个参数就会指向外部变量(即参数的值等于外部变量的值)

let w = 10;

function fn(x = w) {

let w = 20;

return x;

}

fn();//10

----------注意-----------

//在()阶段,x已经赋值后,再改变w的值,也无法改变x的值

let w = 10;

function fn(x = 2) {

w = 20;

return x;

}

fn();//10

reset参数

ES6引入reset参数(形式为…变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了

reset参数搭配的变量是一个数组,该变量将多余的参数放入数组中

类似解构赋值,以后就不用call来使arguments调用数组方法了

function count(…values) {

console.log(values);//[2, 5, 3]

return values.reduce((acc,curr) => acc + curr);

}

add(2, 5, 3);//10

reset参数必须作为函数最后一个参数

function count(…value, a){}//报错

name属性

函数的name属性,返回该函数的函数名

function count(){}

console.log(count.name); //“count”

(new Function).name // “anonymous”

function foo() {};

foo.bind({}).name // “bound foo”

function foo() {};

foo.bind({}).name // “bound foo”

(function(){}).bind({}).name // "bound " // "bound "

(function(){}).name // “”

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值