看一些高手写代码单独用 “$”和“_” 来表示变量,什么时候单独使用这两个字符?还有没有其他的一些小白不容易理解的习惯呢?
ringa_lee
这个虽然没有强制性规定,但是一般对于很多框架而言,_开头的字符串用于定义内部私有属性和方法,$开头的字符串给外部暴露属性或方法,类如vue是这样的。
_
$
另外对于一些框架为了书写方便且一般不会冲突,会使用_和$作为命名空间或者属性方法:_:underscorejs、lodash、__proto__(原型内部属性)等。$:jQuery、zepto、$$(选择器)、正则$1-$9等。
一般_为前缀的约定为私有变量, 非强制的; 而$一般为jQuery的别名, 在jQuery插件和基于jQuery的插件中经常被使用
_ 表示没什么特别的意义。 比如在数组 map forEach 这样的函数里
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
_.forEach
_.map
这里的 _ 没什么特别的意思,关键在于 . 没什么特别的意思,关键在于 . 后面的内容。
.
Haskell 经常用 Haskell 经常用 _ 来指代一些不重要的函数参数 (但是为了模式匹配又不得不写的)
Haskell
至于 $ 一般指 jQuery 或 Zepto 这种 DOM 库,约定俗成,大家一看便知这是 jQuery ,写起来也爽
很多人也提到了以下划线开头的变量,我来扯一句。
node 的 __dirname 表示执行的js所在目录,可为什么要加下划线地这样命名?因为 dirname 是个很常见的变量名 如果不加前缀,那么很可能会跟某些人写的代码冲突,而加上前缀 __ 那么他就是另外一个命名空间下的变量了 ( {x是变量名 | x 满足 "__*" } )
node
__dirname
__
{x是变量名 | x 满足 "__*" }
这样就不会干涉到普通的 dirname 这个可能的变量名了。
因为方便,且不容易冲突。当然,自从 jQuery 出现以后,也有一些类库使用 $ 作为变量名。jQuery 出现以后,也有一些类库使用 $ 作为变量名。$ 和 _ 都少用不易冲突,而且符合变量命名的规范,简短,所以被用了作为一些类库的变量命名。_ 开头接其他字母,例如 _this$ 和 _ 都少用不易冲突,而且符合变量命名的规范,简短,所以被用了作为一些类库的变量命名。
jQuery
_this
$是jquery_是underscore
另外_开头有个约定,表示不使用的变量
因为短!
var asdfasdfawdfsakdfaskjf var $
还是$敲着省事儿
如果你要写类库,那么在使用时,外部入口就越简单越好!
就好像大伙用jquery时,用$的比用jQuery的多!
先说说_,当你必须要用一个变量获取一个值,而这个变量又不会被后文引用到的时候(因为_做变量没有任何意义)
比如,
fn = () => [1, 2] // fn是一个函数,返回两个数 // 假如我只对第二个数感兴趣,则可以用变量_来存放第一个数 [_, a] = fn() // 现在_ = 1, a = 2
至于$则是在jquery里面用得比较多,用来代替jQuery,让你敲得方便一点
jquery
没有特别的的要求 个人习惯而已 你想怎么写就怎么写
我也谈谈我的看法:-和_在css中,很经常见的是用text-info这样,使用破折号连接两个英文的,但是在一些场景,例如vue,有时候使用-会给你报错,所以听一些大神的意见,现在我使用_
这个虽然没有强制性规定,但是一般对于很多框架而言,
_
开头的字符串用于定义内部私有属性和方法,$
开头的字符串给外部暴露属性或方法,类如vue是这样的。另外对于一些框架为了书写方便且一般不会冲突,会使用
_
和$
作为命名空间或者属性方法:_
:underscorejs、lodash、__proto__(原型内部属性)等。$
:jQuery、zepto、$$(选择器)、正则$1-$9等。一般
_
为前缀的约定为私有变量, 非强制的;而
$
一般为jQuery的别名, 在jQuery插件和基于jQuery的插件中经常被使用_
表示没什么特别的意义。 比如在数组map
forEach
这样的函数里这里表示函数体用不上第一个参数 或者说第一个参数不重要 但是如果要用到 its 就不能省略中间的
_
或者有些更懒的。。。
还有,一些JS函数式编程库就用
_
来组织各种函数式工具 比如_.forEach
_.map
来组织各种函数式工具 比如_.forEach
_.map
这里的
_
没什么特别的意思,关键在于.
没什么特别的意思,关键在于.
后面的内容。Haskell
经常用Haskell
经常用_
来指代一些不重要的函数参数 (但是为了模式匹配又不得不写的)至于
$
一般指 jQuery 或 Zepto 这种 DOM 库,约定俗成,大家一看便知这是 jQuery ,写起来也爽很多人也提到了以下划线开头的变量,我来扯一句。
node
的__dirname
表示执行的js所在目录,可为什么要加下划线地这样命名?因为 dirname 是个很常见的变量名 如果不加前缀,那么很可能会跟某些人写的代码冲突,而加上前缀
__
那么他就是另外一个命名空间下的变量了 ({x是变量名 | x 满足 "__*" }
)这样就不会干涉到普通的 dirname 这个可能的变量名了。
因为方便,且不容易冲突。
当然,自从
jQuery
出现以后,也有一些类库使用$
作为变量名。jQuery
出现以后,也有一些类库使用$
作为变量名。$
和_
都少用不易冲突,而且符合变量命名的规范,简短,所以被用了作为一些类库的变量命名。_
开头接其他字母,例如_this
$
和_
都少用不易冲突,而且符合变量命名的规范,简短,所以被用了作为一些类库的变量命名。_
开头接其他字母,例如_this
表示是改方法私有,外界不能访问。🎜$是jquery
_是underscore
另外_开头有个约定,表示不使用的变量
因为短!
还是$敲着省事儿
如果你要写类库,那么在使用时,外部入口就越简单越好!
就好像大伙用jquery时,用
$
的比用jQuery
的多!先说说
_
,当你必须要用一个变量获取一个值,而这个变量又不会被后文引用到的时候(因为
_
做变量没有任何意义)比如,
至于
$
则是在jquery
里面用得比较多,用来代替jQuery
,让你敲得方便一点没有特别的的要求
个人习惯而已
你想怎么写就怎么写
我也谈谈我的看法:-和_
在css中,很经常见的是用text-info这样,使用破折号连接两个英文的,但是在一些场景,例如vue,有时候使用-会给你报错,所以听一些大神的意见,现在我使用_