javascript比較語義化版本號的實(shí)現(xiàn)代碼
前言
所謂“語義化版本號”,就是在版本號中體現(xiàn)出語義,或者說版本號本身是有意義的,不再是隨意給的一個數(shù)字。這個規(guī)范將版本號中每個數(shù)字的意義都做了比較嚴(yán)格的說明。當(dāng)然,其中大部分內(nèi)容還是沿用我們之前說過的業(yè)內(nèi)的約定,所以,對于有版本號意識的開發(fā)者來說,接受這個規(guī)范是很容易的。
在移動端APP第三方開發(fā)中經(jīng)常會碰到一些因?yàn)榘姹静煌斐蒍S SDK或JS API差異或支持的問題。對于移動前端來說,在實(shí)際第三方開發(fā)中可能會需要根據(jù)APP的版本號做一些特殊的業(yè)務(wù)邏輯處理。
語義化版本號
一般語義化版本號通常定義是這樣的:
Major_Version_Number.Minor_Version_Number[.Revision_Number[.Build_Number]] 主版本號 .子版本號 [.修正版本號 [.編譯版本號 ]]
定界符一般使用.
語義化版本號比較方法
這樣我們可以做版本號比較,這里提供一個粗陋的方法:
/**
* 版本比較 VersionCompare
* @param {String} currVer 當(dāng)前版本.
* @param {String} promoteVer 比較版本.
* @return {Boolean} false 當(dāng)前版本小于比較版本返回 true.
*
* 使用
* VersionCompare("6.3","5.2.5"); // false.
* VersionCompare("6.1", "6.1"); // false.
* VersionCompare("6.1.5", "6.2"); // true.
*/
var VersionCompare = function (currVer, promoteVer) {
currVer = currVer || "0.0.0";
promoteVer = promoteVer || "0.0.0";
if (currVer == promoteVer) return false;
var currVerArr = currVer.split(".");
var promoteVerArr = promoteVer.split(".");
var len = Math.max(currVerArr.length, promoteVerArr.length);
for (var i = 0; i < len; i++) {
var proVal = ~~promoteVerArr[i],
curVal = ~~currVerArr[i];
if (proVal < curVal) {
return false;
} else if (proVal > curVal) {
return true;
}
}
return false;
};
使用也很簡單:
VersionCompare("6.3","5.2.5"); // false.
VersionCompare("6.1", "6.1"); // false.
VersionCompare("6.1.5", "6.2"); // true.
這里需要注意的是根據(jù)我自己的業(yè)務(wù)邏輯當(dāng)前版本小于比較版本返回 true。你可以根據(jù)自己的業(yè)務(wù)邏輯修改代碼。
比如我們要獲取微信的版本號,可以這樣寫:
var wechatInfo = navigator.userAgent.match(/MicroMessenger\/([\d\.]+)/i);
var currVer = wechatInfo[1];
if (VersionCompare(currVer, "6.2.5")) {
//你的業(yè)務(wù)邏輯
}
注意:
時間倉促,這個方法僅僅作為普通的常用方法,沒有提供只比較主版本或子版本的方法,而是比較最終的整個版本號。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
JS時間轉(zhuǎn)換標(biāo)準(zhǔn)格式、時間戳轉(zhuǎn)換標(biāo)準(zhǔn)格式的示例代碼
這篇文章主要介紹了JS時間轉(zhuǎn)換標(biāo)準(zhǔn)格式、時間戳轉(zhuǎn)換標(biāo)準(zhǔn)格式的示例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05
javascript+css3開發(fā)打氣球小游戲完整代碼
這是一個簡單但是印象深刻的小游戲,打氣球小游戲的實(shí)現(xiàn)代碼,主要基于js和css3,基于css3畫氣球,具體實(shí)現(xiàn)代碼大家參考下本文2017-11-11

