【问题标题】:In jQuery what is the difference between using the dollar sign VS var?在 jQuery 中,使用美元符号 VS var 有什么区别?
【发布时间】:2014-04-15 06:27:31
【问题描述】:

我正在与一个在 jQuery 中声明变量时从不使用 var 的开发人员合作。比如:

$x = "hello";
$y = "world";
$a = x + " " + y;

jQuery 对此没有任何问题,而且他已经这样做了一段时间。我一直用 var:

var x = "hello";
var y = "world";
var a = x + " " + y;

我们遇到了一个问题,美元符号引起了问题(那是一年前的事,所以我不记得这个问题了)。

是否有人知道或了解两者之间的区别以及为什么一个更好或应该使用另一个?

我做了一些谷歌搜索,但他们都在谈论var $x; vs var x;

【问题讨论】:

  • var $x;var x; 之间除了变量名之外没有任何区别。 $ 通常在你想指定变量是一个 jQuery 对象时使用。
  • 他是不是像var $x, $y, $a;一样先声明变量?并且 $ 对函数或变量名完全有效。
  • 他从不使用var $x,只使用$x
  • 好的,如果他在函数中使用它,它将更改名称为 $x 的全局变量,否则可以只使用 $x,它将被全局声明。

标签: jquery var dollar-sign


【解决方案1】:

使用美元符号不能替代var。变量名中的$ 与任何其他字符相同。 $ 通常被添加到包含 jQuery 对象的变量中。即:

var el = document.getElementById('id');

对比:

var $el = $('#id');

所以它主要用于区分。这对脚本的执行没有影响。

引用中的var$ 完全不相关。其实在全局范围内:

var $el = $('#id');

相同
$el = $('#id')

【讨论】:

  • 我以前见过它用作var $x = ..,但他使用它时没有var
  • The rules of var 应用变量名是否包含$。两者无关。
【解决方案2】:

美元符号没有什么特别的作用,它只是变量名的一部分。

声明没有varmakes a global variable的变量。

【讨论】:

    【解决方案3】:
    $x = "hello";
    $y = "world";
    $a = x + " " + y;
    

    此代码错误。 xy 未定义。

    实际上$x 并没有声明x$xvar $x 相同 notvar x

    $x 是一个变量名,和其他变量名一样

    你可以写:

        x = "hello";
        y = "world";
        a = x + " " + y;
    

    这将与以下内容相同:

        $x = "hello";
        $y = "world";
        $a = $x + " " + $y;
    

    【讨论】:

    • 问题是,他从不使用var。这让我有点困惑。我明白为什么var $x 会起作用。
    • 他只是没有声明他的变量。代码将以任何方式运行
    【解决方案4】:

    没有var 用于全局定义的变量通常不会导致问题,当使用具有相同名称但不同函数/字符串的变量时,您应该在另一个范围内使用 var 声明它,以防止它覆盖原始全局一个。

    http://jsfiddle.net/YWK7T/1/

    $x = "hi#1";
    alert($x); //alerts hi#1 as $x is declared globally
    function hi(){
        var $x = "hi#2";
        alert($x); 
    }
    hi(); //alerts hi#2 as $x within the function scope is hi#2
    alert($x); //alerts hi#1 the previous $x was defined within the scope.
    function hi3(){
        $x = "hi#3";
    }
    hi3(); //replaces global vairiable $x to hi#3
    alert($x); //alerts hi#3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 2019-09-21
      • 2018-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多