首页  >  问答  >  正文

javascript - 看一些高手写代码单独用 “$”和“_” 来表示变量,什么时候单独使用这两个字符?

看一些高手写代码单独用 “$”和“_” 来表示变量,什么时候单独使用这两个字符?
还有没有其他的一些小白不容易理解的习惯呢?

ringa_leeringa_lee2662 天前1042

全部回复(9)我来回复

  • 仅有的幸福

    仅有的幸福2017-07-05 10:55:02

    这个虽然没有强制性规定,但是一般对于很多框架而言,_开头的字符串用于定义内部私有属性和方法,$开头的字符串给外部暴露属性或方法,类如vue是这样的。

    另外对于一些框架为了书写方便且一般不会冲突,会使用_$作为命名空间或者属性方法:
    _:underscorejs、lodash、__proto__(原型内部属性)等。
    $:jQuery、zepto、$$(选择器)、正则$1-$9等。

    回复
    0
  • 迷茫

    迷茫2017-07-05 10:55:02

    一般_为前缀的约定为私有变量, 非强制的;
    $一般为jQuery的别名, 在jQuery插件和基于jQuery的插件中经常被使用

    回复
    0
  • ringa_lee

    ringa_lee2017-07-05 10:55:02

    _ 表示没什么特别的意义。 比如在数组 map forEach 这样的函数里

    var goAhead = arr => arr.map(
        // map 的第一个参数是函数  
        (_, idx, its) => {
            return its[idx + 1] || its[0]; 
        }
    );

    这里表示函数体用不上第一个参数 或者说第一个参数不重要 但是如果要用到 its 就不能省略中间的 _

    或者有些更懒的。。。

    setTimeout(_ => {
        console.log('。。。括号都懒掉了'); 
    }, 200);

    还有,一些JS函数式编程库就用 _ 来组织各种函数式工具 比如 _.forEach _.map 来组织各种函数式工具 比如 _.forEach _.map

    这里的 _ 没什么特别的意思,关键在于 . 没什么特别的意思,关键在于 . 后面的内容。


    Haskell 经常用 Haskell 经常用 _ 来指代一些不重要的函数参数 (但是为了模式匹配又不得不写的)


    至于 $ 一般指 jQuery 或 Zepto 这种 DOM 库,约定俗成,大家一看便知这是 jQuery ,写起来也爽


    很多人也提到了以下划线开头的变量,我来扯一句。

    node__dirname 表示执行的js所在目录,可为什么要加下划线地这样命名?
    因为 dirname 是个很常见的变量名 如果不加前缀,那么很可能会跟某些人写的代码冲突,而加上前缀 __ 那么他就是另外一个命名空间下的变量了 ( {x是变量名 | x 满足 "__*" } )

    这样就不会干涉到普通的 dirname 这个可能的变量名了。

    回复
    0
  • 某草草

    某草草2017-07-05 10:55:02

    因为方便,且不容易冲突。
    当然,自从 jQuery 出现以后,也有一些类库使用 $ 作为变量名。jQuery 出现以后,也有一些类库使用 $ 作为变量名。
    $_ 都少用不易冲突,而且符合变量命名的规范,简短,所以被用了作为一些类库的变量命名。
    _ 开头接其他字母,例如 _this$_ 都少用不易冲突,而且符合变量命名的规范,简短,所以被用了作为一些类库的变量命名。

    _ 开头接其他字母,例如 _this 表示是改方法私有,外界不能访问。🎜

    回复
    0
  • 天蓬老师

    天蓬老师2017-07-05 10:55:02

    $是jquery
    _是underscore

    另外_开头有个约定,表示不使用的变量

    回复
    0
  • 滿天的星座

    滿天的星座2017-07-05 10:55:02

    因为短!

    var asdfasdfawdfsakdfaskjf
    var $

    还是$敲着省事儿

    如果你要写类库,那么在使用时,外部入口就越简单越好!

    就好像大伙用jquery时,用$的比用jQuery的多!

    回复
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-07-05 10:55:02

    先说说_
    当你必须要用一个变量获取一个值,而这个变量又不会被后文引用到的时候(因为_做变量没有任何意义)

    比如,

    fn = () => [1, 2]
    
    // fn是一个函数,返回两个数
    // 假如我只对第二个数感兴趣,则可以用变量_来存放第一个数
    [_, a] = fn()
    // 现在_ = 1, a = 2

    至于$则是在jquery里面用得比较多,用来代替jQuery,让你敲得方便一点

    回复
    0
  • 给我你的怀抱

    给我你的怀抱2017-07-05 10:55:02

    没有特别的的要求
    个人习惯而已
    你想怎么写就怎么写

    回复
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-07-05 10:55:02

    我也谈谈我的看法:-和_
    在css中,很经常见的是用text-info这样,使用破折号连接两个英文的,但是在一些场景,例如vue,有时候使用-会给你报错,所以听一些大神的意见,现在我使用_

    回复
    0
  • 取消回复