博客列表 >js参数、返回值、模板字面量、模板函数和闭包

js参数、返回值、模板字面量、模板函数和闭包

Wu.Ang
Wu.Ang原创
2022年08月19日 16:09:49488浏览

js参数、返回值、模板字面量、模板函数和闭包

参数和返回值

参数

  1. 参数一一对应
  1. // 1. 参数一一对应
  2. function name(参数) {
  3. return 返回值
  4. }
  5. console.log(name(值));
  1. 参数不足 —> 给一个默认值
  1. function name(username = 'world'){
  2. return 'hello.'+username;
  3. }
  4. console.log(name());
  1. 参数过多 —> …rest

‘…’ 用在函数参数中,可以将参数压缩到数组里 ; 用在函数调用,可以展开数组;

  1. // 将多余的参数,全部压入到一个数组里
  2. function name(...arr){
  3. for (let item of arr){
  4. console.log(item);
  5. }
  6. return arr;
  7. }
  8. console.log(name('张三','李四','王五'));
  9. console.log(...['赵','钱','孙']);

返回值 默认都是单值

  1. 数组返回
  1. const f = () => [1,2,3];
  2. console.log(f());
  1. 对象返回
  1. const o = () => {
  2. return {
  3. a:1,
  4. b:2,
  5. c:3,
  6. }
  7. }
  8. console.log(o());
  9. // 返回一个值,可以简写
  10. const obj = () => ({
  11. a:1,
  12. b:2,
  13. c:3,
  14. })
  15. console.log(obj());

对象字面量简化

对象属性,如果和外部变量同名,则可以省去值,自动用外部同名进行初始化

对象方法,将’: function’去掉,不要用箭头函数

  1. let age = '18';
  2. console.log(age);
  3. let y_name = '张三';
  4. let user ={
  5. age,
  6. y_name,
  7. // 方法简写 : 将': function'去掉
  8. getNameAge(){
  9. return this.y_name +':'+this.age;
  10. }
  11. }
  12. console.log(user.age);
  13. console.log(user.getNameAge());

模板字面量

  1. console.log('hello,world');
  2. // hello,world : 字符串
  3. // hello,username : 模板字符串
  4. // 如果一个字符串中,存在"占位符",则成为"模板字符串"
  5. // 占位符 : 插值/表达式/变量
  6. // 插值之外的字符串 : 字面量
  7. // 用反引号 : 声明模板字符串
  8. let name = '老师';
  9. console.log(`hello.${name}`);

模板函数/标签函数 : 使用”模板字面量”作为参数的函数

模板函数的声明与普通函数是一样的,只是调用时,使用”模板字面量”作为参数

function total(参数1, 参数2){}

参数1: 必须是当前模板字面量参数中的字符串字面量组成的数组

参数2: 第二个参数必须是一个或多个模板字面量中插值列表

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

闭包

函数外部变量 : 自由变量

函数内部可用的三种变量

  1. 参数变量 : 函数参数列表中声明
  2. 私有变量 : 函数内部声明
  3. 自由变量 : 函数外部声明

形成闭包的条件

  1. 父子函数
  2. 子函数中调用父函数的变量
  1. fn = function(a){
  2. let f = function(b){
  3. return a + b;
  4. }
  5. return f;
  6. }
  7. console.log(fn(20)(10));

应用 : 偏函数(高阶函数)

  1. fn = function(a){
  2. return function(b){
  3. return function(c){
  4. return a+b+c;
  5. }
  6. }
  7. }
  8. // 将参数分多次传入函数,柯里化
  9. // 将后端返回的数据分块处理
  10. console.log(fn(1)(2)(3));
  11. 代码简化 : 箭头函数
  12. fn1 = d =>e =>f =>d+e+f;
  13. console.log(fn1(1)(2)(3));

纯函数

将外部自由变量,通过参数传入到函数中,而不是在函数中直接引用

  1. let a = 'hello';
  2. let b = 'world';
  3. function hello(c,d){
  4. return c + d;
  5. }
  6. console.log(hello(a,b));
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议