解读js中的$符号

说实话,早先我以为$在js中是有特殊含义的符号,便在网上到处去搜它的意义和用法,可始终无果。

 

我在本地也尝试着用$符号组合一些变量,甚至单独用它当做一个变量都可以使用,故我就猜测js并没有赋予$符号含义,同"_"等符号是一样的可以当做变量或变量的一部分使用。

不过,正是这个没有用的符号却创造出了各种灵活多用的变化。

 

写过php或做过linux开发的朋友们都很熟悉$符号,没错,这就是它们的变量标识符,所以很多人喜欢也把它作为js的变量前缀。

 

First~咱先在控制台验证一下$符:

我先初始化创建一个对象,而对象中模拟3种情况的变量:

函数中的局部变量:$a1_2

成员变量:$a1_3

成员变量:$$a1_4

 

验证一:发现$是变量的连接符

验证二:发现$还是变量的连接符,且并不可以用作地址引用

验证三:发现$也不是全局变量的声明符,所以$只是变量的连接符

 

既然$只是变量的连接符,那不就毫无用处吗?~~~~NO···NO···NO····┑( ̄Д  ̄)┍

下面列举几个例子来详解下$的作用。

 

Second~作为全局函数的应用:

见过JQuery的玩家应该会见过$(document).这样的语句,我觉得很高大上,就好像是js的特殊语法一样,起初我也是这样认为的。

不过,如果把这个语句改成myFunc(document).xxxx是不是瞬间就看出了它的本质,所以$()这就是一个普通的函数,只不过在JQuery中把它定义了出来,而可以直接用。

然而对于不同js脚本,$()的功能也不同,你也可以在自己的框架中重写$()方法,或许我们也可以把它改成下面这样:

直接获取ID,虽然没什么用,但用法是可以借鉴的。

 

Third~定义js脚本的关键字变量:

如果你在开发js脚本,而框架中必然要定义一些变量,而你又不希望用你脚本的人在定义变量的时候与你的变量重名,导致脚本中的变量被覆盖,这时,就可以使用$符号来进行标记一下哪些是你的脚本中的变量。

当然,同样的方案也可以用“_”来标记,但“_”太常用了,因为它在任何语言中都无任何含义,很多人必然会使用“_”来定义变量,而“$”在其它的语言中就无法像“_”一样来使用,比如说PHP,所以在js中$作为变量标记符是最好的选择。

在AngularJS中的控制器就是这么做的:

 

 

是不是很有趣~<( ̄︶ ̄)↗[GO!]

posted @ 2017-05-10 14:40  冉夜  阅读(30004)  评论(2编辑  收藏  举报