请问$a=$("#a")与var a=$("#a")有何区别?js不都是用var来定义变量吗?为什么会使用$直接代替了var?

 我来答
wyd52x
2016-09-27 · TA获得超过1943个赞
知道小有建树答主
回答量:520
采纳率:0%
帮助的人:635万
展开全部

跟有没有$无关,就算你直接写a=10;也是不会报错的,因为没写var他将会把a归到

全局对象window下,你可以试试这句代码

(function(){a=1})();alert(a);alert(window.a);

最后的结果就是 他们都是同样的


js中 允许在定义变量的时候 不加var 修饰符。
js会在当前作用域下寻找上下文是否定义了此变量, 如果没有找到则会为这个变量分配内存。
当且将其视为window的成员。 也就是全局变量。

如果加了var 修饰符。 js会重新为这个变量分配内存,不论当前上下文中是否已经定义过了。
这个变量的作用域就为当前上下文。 即局部变量。

不加var的写法是强烈不推荐的。
1.  语义不清楚。
2.  团队开发时,容易覆盖掉其它作用域内的变量,引发异常。
3.  给window对象添加不必要成员。  

安容无郤
2016-09-27 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:55
采纳率:0%
帮助的人:67.8万
展开全部
不是 $ 替代 var,这是 jq 的习惯写法,加不加 var 才有区别,加不加 $ 都是一样的,但一般在写 jq 都会习惯加上,这样一看就知道写的 jq 对象,除此就没有什么特殊意思了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-09-27
展开全部
你去看看jquery
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式