Blogger Information
Blog 35
fans 0
comment 0
visits 16980
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
函数参数与返回值、模板字面量与模板函数、闭包与纯函数
三九三伏
Original
344 people have browsed it

一、函数参数与返回值

1. 参数

1.参数不足时给个默认值。
2.参数过多时会被丢弃。可以用“…”接收过多的参数,也可以用“…”展开接收的参数。

  1. ...
  2. // 1.参数不足,赋默认值。
  3. function f(param='默认参数'){
  4. return 'f函数参数是:'+param;
  5. }
  6. console.log(f());
  7. // 2. 参数过多,多余的会被忽略,用...rest可接收(数组形式)。
  8. function fn(param, ...n_param){
  9. return 'fn函数第一个参数:'+ param +'\nfn函数后续参数:' + n_param;
  10. }
  11. console.log(fn('参数1','参数2','参数3','参数4'));
  12. //3.接收数组参数并展开
  13. const arr = ['成员1','成员2','成员3'];
  14. console.log('展开数组结果:', ...arr);
  15. // 应用在箭头函数的求和上
  16. let sum = (...arr) => arr.reduce((a, c) => a + c);
  17. console.log('箭头函数求和结果:', sum(10,20,30,40,50,60));
  18. ...

2. 返回值

函数返回通常是单值,如果想返回多值,可以使用数组和对象。

  1. ...
  2. // 返回数组
  3. let f = ()=> [1,2,3];
  4. console.log(f());
  5. //返回对象,省略return的写法需要在对象外层加括号,去掉分号。
  6. f = () => ({
  7. a:1,
  8. b:2,
  9. get:function(){
  10. return 'ok';
  11. },
  12. }
  13. )
  14. console.log(f());
  15. ...

属性和方法的简化
1.对象属性,如果外部变量和内部同名,自动用外部同名变量进行初始化。
2.对象方法,可以将“:function”删除,但注意不要用箭头函数来简化。

  1. ...
  2. let name='李二';
  3. let user = {
  4. name,
  5. email:'mail@mail.com',
  6. getUserInfo(){
  7. return this.name + ':' + this.email;
  8. },
  9. };
  10. console.log(user.name);
  11. console.log(user.email);
  12. console.log(user.getUserInfo());
  13. ...

二、模板字面量与模板函数的声明,参数特点

1.模板字面量:可以用插值表示的字符串。

  1. ...
  2. let username = '小明';
  3. // 模板字面量要用反引号,变量用大括号括起来,外加$符号。
  4. console.log(`用户名是:${username}`);
  5. ...

2.模板函数:使用模板字面量当参数的函数

模板函数声明与普通函数没有区别,参数特点如下:
参数1:必须是当前模板字面量参数中的字符串字面量组成的数组
参数2:必须是一个或多个模板字面量中插值列表

  1. ...
  2. function total(string, ...args){
  3. console.log(string);
  4. console.log(args);
  5. }
  6. let name='手机';
  7. let num= 10;
  8. let price =500;
  9. total`名称:${name}, 数量:${num}, 单价:${price}`;
  10. ...

三 闭包的形成条件与访问方法,纯函数的特点

1. 闭包形成条件

父子函数关系
子函数引用父函数中的变量

2. 闭包的访问方法

  1. ...
  2. fn = function(a){
  3. let f = function(b){
  4. return a + b;
  5. };
  6. return f;
  7. }
  8. let f1 = fn(10);
  9. console.log(f1);
  10. console.log(typeof f1);
  11. console.log(f1(20));
  12. fn = function(a){
  13. return function(b){
  14. return function(c){
  15. return a + b + c;
  16. }
  17. }
  18. }
  19. console.log(fn(1)(2)(3));
  20. // 使用简化闭包
  21. fn = a => b=> c=> a + b + c;
  22. console.log(fn(1)(2)(3));
  23. ...


闭包的子函数就像灵魂,父函数是躯体,被调用就像灵魂出窍,灵魂出窍肉体必须保护好,不然灵魂就回不来了。

纯函数的特点

不依赖与外部变量,具有很好的移植性。代码可以放在任何位置,和上下文无关,不涉及线程切换。

Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post