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

2024-11-15 14:20:33
推荐回答(3个)
回答1:

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

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

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

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


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

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

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

回答2:

不手搜是 $ 替代 var,这是 jq 的习惯写法,加不加 var 才有区别,加不加 $ 都是一样的,但一般耐薯耐在写 jq 都会习惯加上,这样一看就知道写的 jq 对象,除此就没昌春有什么特殊意思了。

回答3:

你去看看jquery