Javascript 为什么不总是使用;jQuery";功能而不是“功能”$&引用;避免问题

Javascript 为什么不总是使用;jQuery";功能而不是“功能”$&引用;避免问题,javascript,jquery,Javascript,Jquery,我知道美元符号只是一个要输入的字符,“jQuery”是6…但总是使用jQuery函数难道不能防止在重载美元函数时出现各种奇怪的问题吗 如果JavaScript被混淆了,那么在运行时使用哪种形式就无关紧要了 我不明白为什么避免$不是一种最佳实践(并将其视为JavaScript的“坏部分”)。不涉及“重载”$只是函数的另一个名称。jQuery的目标是在其应用程序中无处不在,因此它选择了一个方便但不太可能被简称的名称。它也可以保证它的存在与生活: (function ($) { // Use

我知道美元符号只是一个要输入的字符,“jQuery”是6…但总是使用jQuery函数难道不能防止在重载美元函数时出现各种奇怪的问题吗

如果JavaScript被混淆了,那么在运行时使用哪种形式就无关紧要了


我不明白为什么避免$不是一种最佳实践(并将其视为JavaScript的“坏部分”)。

不涉及“重载”
$
只是函数的另一个名称。jQuery的目标是在其应用程序中无处不在,因此它选择了一个方便但不太可能被简称的名称。它也可以保证它的存在与生活:

(function ($) {
    // Use $ all you want here; you know it’s the same as what jQuery pointed to
})(jQuery);

坦率地说,jQuery的名字是它最好的地方之一。如果你想担心糟糕的做法,想想
$(“#错误消息”).text('Really important!')
怎么会失败而不做任何事情,甚至不会引发错误,仅仅因为你用连字符把ID搞错了。

忽略你问的关于
jQuery
$
的问题。我(我也很确定其他开发人员)认为,通过所有使用的外部库显式定义名称是一种很好的做法

使用IIFE、ADM加载程序(如requirejs)或类似技术,不管js文件的内容包装到函数体中有多普遍,该函数体创建一个范围,封装所有变量和函数定义,并将使用的库作为参数传递给该包装函数

未作为参数传递给该包装器的第三方库必须视为不存在


因此,在包装器中,您可以为给定的库使用任何您想要的名称(但您应该使用其他开发人员使用的通用名称)

方便性…就是这样。另外,非主题的代码维护不是也很重要吗?其他库也使用美元符号,jQuery甚至在这种情况下使用“无冲突”模式。输入“jQuery”不是很简单吗?我能说什么?也许是懒惰?为什么会偏离主题?偏离主题的投票理由是100%的“主要基于意见”。“方便但不太可能被简称为”…参见。Prototype和Mootools非常常见。…。@Jonathan.Brink:jQuery非常、非常、非常常见。另外,Prototype和Mootools都很糟糕,你为什么要同时使用它们呢?“Prototype和Mootools都很糟糕”是一种短视的态度,让你的代码不会践踏其他名称空间,紧接着,你会说你不太可能同时使用这三个词,因为它们做的事情或多或少是一样的,如果你做了,你确实会直呼其名。(我不使用jQuery已经放心了;见最后一段。)@false目前jQuery可能更常见。但是,目前编写代码而不考虑可维护性是一件坏事。使用类似于adm的loader或IIFE应该是首选,即使只是在可能存在并行使用另一个库的情况下,例如迁移原因或任何其他原因。