其实用过jquery的同学们都知道,$符号是jq的关键符号,可以用来获取dom信息,内部传入一些选择器
(function(window, undefined){
window.$ = window.jQuery = xxxx
})(window)
正因为大闭包内有这样的代码,使得我们在外面使用$或者jQuery的做法结果是一样一样的,所以$符号是一个函数
$("#demo")
// 或者
jQuery("#demo")
可能很多人疑惑过,为什么jquery当时要用$符做为关键符号呢?
1、javascript的命名规则
命名变量的规则:1、变量名区分大小写,允许包含数字、字母、下划线“_”和美元符号“$”,但第一个字符不能为数字;2、变量名中不能出现汉字、空格、连字符“-”、点“.”等特殊字符;3、变量名不能是关键字、保留字;4、避免使用没有意义的命名等。
根据命名规则可以发现,在当时js发展的早期,想要给自己创造的伟大jquery占有一个霸气,合规,常用,简短的命名,第一个不能是数字,字母太大众化,下划线在代码开发中随处可见,而反观这么多年过去了,$符号依然除了jq,其他地方用的不多,甚至现在你一旦使用了$符,就会被鄙视的认为你用了jquery。
注意:可能哪个面试官真的头脑发热,让你说几个关键字,你不要发懵,你要把迅速说几个日常开发中使用的,if else break continue do while for ,如果你知道有这些东西想不出来,说不出来,那肯定不行。
2、个人猜想
我觉得这和USD是有关系的,为什么命名规则要着重说明这个$呢,符号可是很多很多的,虽然其他的也都有各自的含义,但不会找不到了吧,而是要用$。所以这个权利的思想还是不至于物力,贸易,就连全球通用的开发语言也不能幸免。
至于jq之父是不是特别想钱,那也许吧,反正我想
3、我们也可以用$符定义变量
定义变量说的是可以包含$符号,那么意思就是在前面,中间,或者后面都可以。例如jq时代,非常重要的一点就是区分js对象和jq对象。所以,如果预备接收的是一个jq对象,就类似于这样 $dom $element
当然,写在中间和写在后面也可以,但几乎每什么含义啊,定义变量至少应该都是一个有含义的吧。