作家
登录

JavaScript的函数式编程,你了解吗?

作者: 来源: 2017-10-26 09:46:30 阅读 我要评论

  •   [3, 'three'
  • ]); 
  • // Instead of: map.set(4, 'four'); 
  • const map2 = new Map([...map, [4, 'four']]); 
  • // Instead of: map.delete(1); 
  • const map3 = new Map([...map].filter(([key]) => key !== 1)); 
  • // Instead of: map.clear(); 
  • const map4 = new Map(); 
    1. const set = new Set(['A''B''C']); 
    2. // Instead ofset.add('D'); 
    3. const set2 = new Set([...set'D']); 
    4. // Instead ofset.delete('B'); 
    5. const set3 = new Set([...set].filter(key => key !== 'B')); 
    6. // Instead ofset.clear(); 
    7. const set4 = new Set(); 

    我想提一句如不雅你在应用 TypeScript(我异常爱好 TypeScript),你可以用 Readonly<T>、ReadonlyArray<T>、ReadonlyMap<K, V> 和 ReadonlySet<T> 接口来在编译期检查你是否测验测验更改┞封些对象,有则抛出编译缺点。如不雅在对一个对象字面量或者数组调用 Object.freeze,编译器会主动揣摸它是只读的。因为映射和集合在其内部表达,所以在这些数据构造上调用 Object.freeze 不起感化。然则你可以轻松地告诉编译器它们是只读的变量。

    TypeScript 只读接口

    好,所以我们可以经由过程创建新的对象来代替修改本来的对象,然则如许不会导致机能损掉吗?当然会。确保在你本身的应用中做了机能测试。如不雅你须要进步机能,可以推敲应用 Immutable.js。Immutable.js 用持久的数据构造 实现了链表、客栈、映射、集合和其他数据构造。应用了如同 Clojure 和 Scala 如许的函数式说话中雷同的技巧。

    1. const vehicles = [ 
    2.   { make: 'Honda', model: 'CR-V', type: 'suv', price: 24045 }, 
    3.   { make: 'Honda', model: 'Accord', type: 'sedan', price: 22455 }, 
    4.   { make: 'Mazda', model: 'Mazda 6', type: 

        推荐阅读

        如何处理JavaScript内存泄露

      沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 几周前,我们开端写一个系列,>>>详细阅读


      本文标题:JavaScript的函数式编程,你了解吗?

      地址:http://www.17bianji.com/lsqh/38230.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)