Namespace, Primitive, Method
    Wondering what’s next for npm?Check out our public roadmap! »

    js-knife

    1.1.10 • Public • Published

    js-knife

    • 尽管作为高级编程语言的 javascript 提供了如此多好用的函数,但是我觉得还是不够的,比如 Date 对象转字符串、忽略大小写的子字符串匹配、提前结束的 forEach 等。这是发起此项目的原因一。
    • 好用、功能全面的工具库很多,但是,他们提供了太多的功能,很多功能几乎不会用到。我不想因为想用某一个函数而引用一个库,这是不想用常见工具库的原因之一。
    • 这些功能全面的库,往往采用“函数式编程”的思路而设计。也许看到这里很多人都已经开始认为我“不喜欢”函数式编程,当然不是,作为一种编程思路,无论是面向过程、面向对象还是函数式编程,都有其适用的场景。函数式编程一个突出的优点是安全,但是安全是有代价的,安全的代价是保守。当衡量安全带来的好处和保守带来的烦恼,我发现,日常的 web 开发也许不需要那么保守,甚至,我想更激进一些。这是不想用常见工具库的原因之二。正像此项目的名字,此项目用起来是有危险的,用不好可能会割到自己的手指。
    • 不想用常见工具库是发起此项目的原因之二。

    设计理念

    • 实用
    • 易读
    • 易写
    • 拆掉辅助轮

    关于易写和易读。有的功能比如检测一个值或对象,是否是一个数组中的某一个元素,仅用原生的 js 功能就可以实现(且代码不长)比如['car', 'shop', 'person'].indexOf('shop') > -1。但是这个方法的缺点是:不够直观,尽管 “是否是数组中的某一项” 和 “这个元素在数组中的位置大于-1” 是全等的,但是其实现和所需效果的原始目的并不是一致的,也就是写个功能的时候需要“稍微想一下”,读的时候,也是需要想一下的,而'shop'.isOneOf(['car', 'shop', 'person'])则一眼就能看懂,写的时候也无需思考。

    使用时需注意

    • 此项目在 String、Date、Array 等原生 js 对象的 prototype 上了添加很多不安全的函数(可能会与其他项目冲突)
    • 此项目不会在操作前进行安全检验
    • 此项目的源码不会特别大,使用前,最好读一遍

    使用

    安装
    npm install js-knife
    
    源码

    传送门

    感谢贡献

    • 欢迎在 issue 里表达您的观点、不满,如果发现 bug 并提出批评,码者会更加感激
    • 如果你有自己想用而本项目没有的工具函数,欢迎在 issue 里提出
    • 如果你有自己常用的工具函数库,欢迎合并

    Install

    npm i js-knife

    DownloadsWeekly Downloads

    12

    Version

    1.1.10

    License

    ISC

    Unpacked Size

    6.51 kB

    Total Files

    3

    Last publish

    Collaborators

    • avatar