zoukankan      html  css  js  c++  java
  • js学习笔记 -- 函数

    • js函数有类似javaMethod用法
      Math.max.apply(null, [3, 5, 4]); // 5
      Math.max.call(null, 3, 5, 4); // 5
    • Array map,reduce,filter,sort
      var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
      var results = arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81]
      console.log(results);
      [x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
      var arr = [1, 3, 5, 7, 9];
      arr.reduce(function (x, y) {
          return x + y;
      }); // 25
      var arr = [1, 2, 4, 5, 6, 9, 10, 15];
      var r = arr.filter(function (x) {
          return x % 2 !== 0;
      });
      r; // [1, 5, 9, 15]
      var arr = [10, 20, 1, 2];
      arr.sort(function (x, y) {
          if (x < y) {
              return 1;
          }
          if (x > y) {
              return -1;
          }
          return 0;
      }); // [20, 10, 2, 1] 
      sort默认字符创排序,数字排序需要重写sort 方法
    • 闭包: 闭包是由函数以及创建该函数的词法环境组合而成。这个环境包含了这个闭包创建时所能访问的所有局部变量。也就是说返回的函数中存有局部变量。
      function makeAdder(x) {
        return function(y) {
          return x + y;
        };
      }
      
      var add5 = makeAdder(5);
      var add10 = makeAdder(10);
      
      console.log(add5(2));  // 7
      console.log(add10(2)); // 12

      //嵌套的函数可以访问在其外部声明的变量。

      也可以借助闭包,同样可以封装一个私有变量。

          function inc(init) {
              let x = init;
              return {
                  inc: function () {
                      x += 1;
                      return x;
                  }
              }
          }
          let inc5 = inc(5)
          console.log(inc5.inc())//6
          let inc10 = inc(10)
          console.log(inc10.inc())//11
    • 箭头函数内部的this是词法作用域,由上下文确定。箭头函数完全修复了this的指向,这里this指向外部调用对象person。

          let person = {
              name : 'lby',
              getname : function () {
                  let name = () => this.name;
                  return name()
              }
          }
          console.log(person.getname())
  • 相关阅读:
    iOS遍历程序内某个文件夹下所有文件的属性
    CATransition 转场动画
    Xcode安装的推送证书所在目录
    UIMenuController 实现长按显示自定义菜单功能
    ios调用第三方程序打开文件,以及第三方调用自己的APP打开文件
    购物车界面,不同section,点击增减物品,确定取消选中的逻辑判断
    iOS UINavigationController
    iOS9 URL Schme 白名单
    iOS9 HTTPS
    iOS9 后台定位
  • 原文地址:https://www.cnblogs.com/liuboyuan/p/9744069.html
Copyright © 2011-2022 走看看