这些语句的区别是什么?我知道 "var $test" 声明了一个jQuery变量,但jQuery变量和一般的JavaScript变量有何不同呢?
这些语句的区别是什么?我知道 "var $test" 声明了一个jQuery变量,但jQuery变量和一般的JavaScript变量有何不同呢?
$test
是一种惯例,用于表示此变量是 jQuery 对象,您可以在其上调用标准函数,而 test
可能是标准的 DOM 元素,您无法在其上调用 val
函数。
例如:
var $test = $('#someId');
var test = document.getElementById('#someId');
你可以使用 $test.text();
,但是你不能使用 test.text();
没有区别。$ 是 JavaScript 标识符中有效的字符,但没有特殊含义。事实上,在 ECMAScript 3 规范的第7.6节中指出:
美元符号($)和下划线符号 (_)可以在标识符的任何位置使用。美元符号仅用于机械生成的代码。
......尽管现在的情况可能已经使该建议过时了。事实上,最近的 ECMAScript 5 规范省略了最后一句话。
在var $test
和var test
之间没有区别。但了解变量中包含的数据类型总是有益的:例如,如果其他人只想修改您代码中的一个函数而不必阅读代码,或者必须使用console.log查看变量内容以了解其中的内容。
以下是一些示例:
var arrTest = [1, 2, a, b, c], //Array
objTest = {test: 1, test2: 2}, //Object
strTest = "test", //String
intTest = 4, //integer
$test = $("#test") //jqueryObject
var Test1 = [1, 2, a, b, c], //Array
test2 = {test: 1, test2: 2}, //Object
Test3 = "test", //String
Test4 = 4, //integer
$test = $("#test") //jquery Object
$()
形式。$
上定义的函数集合:var $ = function(e){ // the jquery magic }
但是您仍然可以将$somethingelse
用作变量。
t
开头的变量名是否特殊,那么答案也是一样的。 - Felix Kling