一から勉強させてください( ̄ω ̄;)

最下級エンジニアが日々の学びをアウトプットしていくだけのブログです。

jQueryのバージョン確認方法について

今回は簡単な記事ですが、jQueryのバージョンをさくっと確認する方法を書きたいと思います。


jQueryのソース(今回みたのは2.0.3)をざっと見ると、以下のようになってます。
ちなみにめちゃめちゃ省略してます。

(function(window, undefined){

var rootjQuery, 
    core_version = "2.0.3", //これにどうやってアクセスするのか。

    略
    
    // Define a local copy of jQuery
    jQuery = function( selector, context ) {
        // The jQuery object is actually just the init constructor 'enhanced'
        return new jQuery.fn.init( selector, context, rootjQuery );
    },
    
    略; //varの定義はここまででいったん終わり


jQuery.fn = jQuery.prototype = {
    // The current version of jQuery being used
    jquery: core_version, //ここですな!!!

    constructor: jQuery,

    init: function( selector, context, rootjQuery ) {
    
    略

    },

    略

};
jQuery.fn.init.prototype = jQuery.fn;

略

rootjQuery = jQuery(document);

略

if ( typeof window === "object" && typeof window.document === "object" ) {
	window.jQuery = window.$ = jQuery;
}

})(window);


このソースから、jQueryのバージョン情報はcore_versionという変数に格納されており、その値はjQuery.prototypeにあるjqueryプロパティにアクセスすれば取得できることがわかります。


よって、

$().jquery; //"2.0.3"


こんな感じで、jQuery.fn.initのインスタンスをつくって、そのjqueryプロパティにアクセスしてやれば簡単にバージョンの確認ができますね。


そこまで使うこともないと思いますが、現在そのサービスで適用されているjQueryのバージョンをさくっと確認したいときに便利かもしれません。


ちなみに、余談ですが、

(function(window, undefined){

略

})(window);


の部分。
undefinedがグローバル変数で上書きすることが可能だから、このスコープ内に安全に確保するためにこうやってるんですね。(下記の3つめの記事で、最近の処理系ではundefinedはconst扱いになったって書いてましたけど。。たしかにChromeのコンソールでは上書きできないっぽかったですが。)


呼び出し時に第二引数を空にして呼び出しているので、この関数スコープ内では確実にundefinedがundefinedになるようになってます。


このあたりはより詳しく解説してくださっている方もたくさんいらっしゃいますね。感謝です。

http://frmmpgit.blog.fc2.com/blog-entry-51.html
http://madguytech.wordpress.com/category/javascript/
http://blog.tojiru.net/article/205007468.html


では今回はこのへんで。


小さな事からコツコツと。