Heim > Fragen und Antworten > Hauptteil
迷茫2017-04-10 17:53:13
题主问这个问题说明题主比较善于思考的,有好奇心,点个赞。
我根据个人理解,提供一些见解(抛砖引玉下):
1、首先这里的jquery就是jquery.js的化名而已,不做详解。
2、但这里的jQuery就不一样了,首先,为什么要写成jQuery
?而不是Jquery
,也不是jquEry
,根据个人推测,这里的jQuery,用的是驼峰命名法,是javaScript表示函数名的一种写法,其中j
可能是指javascript
或jquery之父john resig
的首个字母,后面的query意即查询的意思。这里说jQuery是jquery源码中函数命名,打开jquery源码来佐证一二。
(function(window, undefined) {
var jQuery = function( selector, context ) {
// 省略部分代码
}
window.jQuery = window.$ = jQuery;
})(window);
在上面这段单独拿出来的jquery源码中,我们可以看到作者用var jQuery = function(){}
的形式声明了一个函数表达式(在jquery源码中,jQuery
是jquery的核心类,这里不做过多解释,可以看jquery源码分析的相关文章)。所以在这里佐证了关于jQuery
是jquery中函数命名的猜想。说了为什么写成jQuery
,再聊一下为什么要写jQuery
,在这段代码window.jQuery = window.$ = jQuery;
中,可以看到,我们用外部全局变量window
将jQuery
附加到其上做为属性,意思是指把jQuery声明成一个全局变量,因为在JavaScript中,自定义的全局变量都是window的属性,这里同时把jQuery
和$
提升为全局变量,是因为在JavaScript中为了避免用$
出现了全局污染,因为有很多JavaScript库也会把$
作为简写,当用$
全局变量出现变量冲突时,可以用jQuery
代替$
,比如$('.p').addClass()
可以写成jQuery('.p').addClass()
。
参考资料:
jquery百度百科
驼峰命名法百度百科
jquery源码分析
PHPz2017-04-10 17:53:13
npm里面jquery和jQuery是不一样的 说的是这个吧?
jQuery是node.js用的https://www.npmjs.com/package...
jquery是浏览器用的https://www.npmjs.com/package...
天蓬老师2017-04-10 17:53:13
你问的可能是jQuery UI 与 jquery 的区别吧.
主要区别是:
(1) jQuery是一个js库,主要提供的功能是选择器,属性修改和事件绑定等等。
(2) jQuery UI则是在jQuery的基础上,利用jQuery的扩展性,设计的插件。提供了一些常用的界面元素,诸如对话框、拖动行为、改变大小行为等等。
(3) jQuery本身注重于后台,没有漂亮的界面,而jQuery UI则补充了前者的不足,他提供了华丽的展示界面,使人更容易接受。既有强大的后台,又有华丽的前台。jQuery UI是jQuery插件,只不过专指由jQuery官方维护的UI方向的插件。
大家讲道理2017-04-10 17:53:13
楼主也许想知道的是
jquery指的是js库本身,就是常常看到的那个js文件,引入的文件。
jQuery指的是jquery里面的函数,也就是经常我们用jquery的时候用的那个$
因为再可能导致冲突的情况下,我们用jQuery来替代‘$’这个符号。
PHPz2017-04-10 17:53:13
jQuery官网
What is jQuery?
jQuery is a fast, small, and feature-rich JavaScript library. It makes
things like HTML document traversal and manipulation, event handling,
animation, and Ajax much simpler with an easy-to-use API that works
across a multitude of browsers. With a combination of versatility and
extensibility, jQuery has changed the way that millions of people
write JavaScript.
PHP中文网2017-04-10 17:53:13
难道是说这里: jQuery 2.0.3源码
jQuery.fn = jQuery.prototype = {
// The current version of jQuery being used
jquery: core_version,
constructor: jQuery,
阿神2017-04-10 17:53:13
Query是node.js用的https://www.npmjs.com/package...
jquery是浏览器用的https://www.npmjs.com/package...
大家讲道理2017-04-10 17:53:13
JS里函数名区分大小写,跟PHP不同,所以在编程时只能写作jQuery
,$
是jQuery
的别名,你也可以自定义,比如你很爱PHP的话,可以用php作为jQuery的别名:
(function(php){
php(function(){
php.each({k0: "v0", k1: "v1"}, function(k, v){
console.log("键:"+k+" 值:"+v);
});
});
})(jQuery);
键:k0 值:v0
键:k1 值:v1