V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
DinoStray
V2EX  ›  问与答

nodejs require 一个包的时候, _ 是什么意思?

  •  
  •   DinoStray · 2021-03-25 17:09:49 +08:00 · 1065 次点击
    这是一个创建于 1099 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如
    const _ = require('lodash')
    为什么不给它起名字, 要用 _ ?
    我可以多个包引入都用 _么? 还是一个文件里只能用一次 _?

    另外

    if (_.includes(process.argv, '-h') || _.includes(process.argv, '--help')) {
      help()
      process.exit(0)
    }
    

    后面这里用到了 _.includes, 和前面那个 require 是因果关系么?

    6 条回复    2021-03-25 21:10:58 +08:00
    ohoh
        1
    ohoh  
       2021-03-25 17:15:07 +08:00
    这不就是起了个名字吗, 你将 _ 定义为 dog 也行啊, 后面就是 dog.includes()
    morethansean
        2
    morethansean  
       2021-03-25 17:16:41 +08:00
    "low dash",而且本身由来好像也是 a lightweight alternative to "underscore" 吧? No offense 但老哥你这问题提得有点让人觉得是不是应该先学一下 js 啊?😂
    nbhaohao
        3
    nbhaohao  
       2021-03-25 17:17:32 +08:00   ❤️ 1
    _ 本身只是一个符合 JavaScript 变量命名的一个名字,因为有些库被非常多的人使用,所以库在开发出来后,官方文档种的例子中给它取了个“官方的名字”,比如 jQuery 就会是 `const $ = require('jQuery')`,当然 jQuery 不能在 nodejs 中使用,不过这里只是一个例子。以后看到 `$` 就会想到 jQuery 。
    总结来说,是一种约定俗成,以后你在任何项目种看到 _ 这个名字的时候,就会想到:哦,这个项目使用了 lodash 。
    当然你不喜欢,换个文字完全是一样的。

    另外根据你的「为什么不给它起名字, 要用 _ ?」描述,说明楼主也知道 “_” 表示忽略这个参数,即不得已产生的变量,大家可以忽略它,这也是一种约定俗成。

    所以 "_" 是一个变量名,而这个变量指向一个对象,所以就可以调用它的 `includes` 方法
    DinoStray
        4
    DinoStray  
    OP
       2021-03-25 17:25:36 +08:00
    @nbhaohao 谢谢老哥, 原来每个库都有自己的缩写, 我懂了
    zythum
        5
    zythum  
       2021-03-25 19:03:47 +08:00
    @DinoStray 只是约定俗成的名字,lowDash 是一个 api 仿照 underscore 的库,你看这两个库的名字,不就是下划线嘛... > _ <
    SoloCompany
        6
    SoloCompany  
       2021-03-25 21:10:58 +08:00
    underscore 这个词语就是 '_' 符号
    dash 则是 '-' 符号
    lodash 这个词语是造出来的, 就是 lo-dash 相当于 '-' 符号往下降低一些就是 '_' 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3228 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:32 · PVG 19:32 · LAX 04:32 · JFK 07:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.