思考

  • Node.js中最常用的恐怕就是 require, exports 以及 module.exports 了,那么 exports 和 module.exports 这两者有什么区别,在什么情况下使用 exports,又在什么时候使用 module.exports。

    先举个官网的例子:

    // circle.js
    var PI = Math.PI;
    
    exports.area = function (r) {
      return PI * r * r;
    };
    
    exports.circumference = function (r) {
      return 2 * PI * r;
    };

    在 circl

  • 🤔

    今天在看 ES7 新增的部分 Api 的时候刚好看到 padStart 的这个方法,好像还挺实用的,而且也想在正式开始工作之前先找找写代码的感觉,于是顺手(其实还是花了不少时间的)就实现了这个 polyfill。

    相关的 API 用法在 MDN 上有说明。 链接 下面是具体实现

    if(!String.prototype.padStart)
        String.prototype.padStart = 
           // 为了方便表示这里 fillString 用了ES6 的默认参数,不影响理解
            function (maxLength, fillString=' ') 
  • zwhuzwhu/blog· 2 年前 思考

    一个前后端分离的 Node 项目,怎么合理分配依赖包的 Key?

    package.json 中, 有 dependenciesdevDependencies 的配置,顾名思义, dependencies 中放的是项目必不可少的依赖包,比如后端是 koa 的项目,那么如果别人想运行你的项目就必须安装 koa,而 devDependencies 放的是使用者无需安装的依赖包,比如 mocha,eslint 之类的依赖,那么问题来了,在一个前后端分离的项目中,如何合理分配依赖包的 Key 。

    现在大概有两种做法:

    1. 把前端的依赖包和开发需要依赖的包都放到 devDependencies 中,后
  • 昨天被问到「你学编译原理有什么用,对你现在的工作有什么帮助吗?」

    我当时脑袋不太好,没有很好地回答出来,只说了一些关于 JavaScript 的变量提升方面的东西。直到今天下午我读 w3c 的 rfc2612 规范的时候,我才意识到学习编译原理对我的帮助和影响。

    在 rfc2612 规范中定义了一系列的 Catch-Control 的指令如下:

        Cache-Control   = "Cache-Control" ":" 1#cache-directive
        cache-directive = cache-request-directive
             | cache-res
  • 这是一篇水文,老板给面试同学出的笔试题,顺手练一下

    function toBinary(n) {
      function toBinaryIter(n, s) {
         if(n === 0) {
           return s || '0'
         }
         
         var a = n / 2
         , b = n % 2
    
         return toBinaryIter(a|0, b+s)
      }
    
      return toBinaryIter(n, '')
    }
    
    
    toBinary(0) === (0).toString(2)
    
    toBinary(1) === (1).t