最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript比較語(yǔ)義化版本號(hào)的實(shí)現(xiàn)代碼

 更新時(shí)間:2016年09月09日 10:45:50   投稿:daisy  
這篇文章先是給大家簡(jiǎn)單的介紹了下語(yǔ)義化版本號(hào),而后再用實(shí)例代碼演示語(yǔ)義化版本號(hào)的比較方法,有需要的朋友們可以參考借鑒。

前言

所謂“語(yǔ)義化版本號(hào)”,就是在版本號(hào)中體現(xiàn)出語(yǔ)義,或者說(shuō)版本號(hào)本身是有意義的,不再是隨意給的一個(gè)數(shù)字。這個(gè)規(guī)范將版本號(hào)中每個(gè)數(shù)字的意義都做了比較嚴(yán)格的說(shuō)明。當(dāng)然,其中大部分內(nèi)容還是沿用我們之前說(shuō)過(guò)的業(yè)內(nèi)的約定,所以,對(duì)于有版本號(hào)意識(shí)的開(kāi)發(fā)者來(lái)說(shuō),接受這個(gè)規(guī)范是很容易的。

在移動(dòng)端APP第三方開(kāi)發(fā)中經(jīng)常會(huì)碰到一些因?yàn)榘姹静煌斐蒍S SDK或JS API差異或支持的問(wèn)題。對(duì)于移動(dòng)前端來(lái)說(shuō),在實(shí)際第三方開(kāi)發(fā)中可能會(huì)需要根據(jù)APP的版本號(hào)做一些特殊的業(yè)務(wù)邏輯處理。

語(yǔ)義化版本號(hào)

一般語(yǔ)義化版本號(hào)通常定義是這樣的:

Major_Version_Number.Minor_Version_Number[.Revision_Number[.Build_Number]]
 
主版本號(hào)   .子版本號(hào)    [.修正版本號(hào)  [.編譯版本號(hào) ]]

定界符一般使用.

語(yǔ)義化版本號(hào)比較方法

這樣我們可以做版本號(hào)比較,這里提供一個(gè)粗陋的方法:

/**
 * 版本比較 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;
};

使用也很簡(jiǎn)單:

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ù)邏輯修改代碼。

比如我們要獲取微信的版本號(hào),可以這樣寫:

var wechatInfo = navigator.userAgent.match(/MicroMessenger\/([\d\.]+)/i);
var currVer = wechatInfo[1];
if (VersionCompare(currVer, "6.2.5")) {
 //你的業(yè)務(wù)邏輯
}

注意:

時(shí)間倉(cāng)促,這個(gè)方法僅僅作為普通的常用方法,沒(méi)有提供只比較主版本或子版本的方法,而是比較最終的整個(gè)版本號(hào)。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。

相關(guān)文章

  • JavaScript裝飾者模式原理與用法實(shí)例詳解

    JavaScript裝飾者模式原理與用法實(shí)例詳解

    這篇文章主要介紹了JavaScript裝飾者模式原理與用法,結(jié)合實(shí)例形式總結(jié)分析了JavaScript裝飾者模式相關(guān)概念、功能、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • JS時(shí)間轉(zhuǎn)換標(biāo)準(zhǔn)格式、時(shí)間戳轉(zhuǎn)換標(biāo)準(zhǔn)格式的示例代碼

    JS時(shí)間轉(zhuǎn)換標(biāo)準(zhǔn)格式、時(shí)間戳轉(zhuǎn)換標(biāo)準(zhǔn)格式的示例代碼

    這篇文章主要介紹了JS時(shí)間轉(zhuǎn)換標(biāo)準(zhǔn)格式、時(shí)間戳轉(zhuǎn)換標(biāo)準(zhǔn)格式的示例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Promise中的then鏈機(jī)制用法詳解

    Promise中的then鏈機(jī)制用法詳解

    這篇文章給大家詳細(xì)介紹了Promise中的then鏈機(jī)制用法,每一次 .then都會(huì)返回一個(gè)新的promise實(shí)例,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • 推薦20家國(guó)外的腳本下載網(wǎng)站

    推薦20家國(guó)外的腳本下載網(wǎng)站

    腳本使網(wǎng)站更加動(dòng)態(tài)和更具交互性,但是寫好一個(gè)腳本并不是一件容易的工作,因此一些開(kāi)發(fā)者會(huì)到網(wǎng)站下載其他人分享的腳本來(lái)使用。今天,本文向大家推薦20佳國(guó)外的腳本下載網(wǎng)站。
    2011-04-04
  • 小程序綁定用戶方案優(yōu)化小結(jié)

    小程序綁定用戶方案優(yōu)化小結(jié)

    這篇文章主要介紹了小程序綁定用戶方案優(yōu)化小結(jié),該類小程序在使用之前就需要綁定用戶信息。常見(jiàn)于線下門店類功能性小程序。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Javascript模塊導(dǎo)入導(dǎo)出詳解

    Javascript模塊導(dǎo)入導(dǎo)出詳解

    這篇文章主要介紹了Javascript模塊導(dǎo)入導(dǎo)出詳解的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • javascript+css3開(kāi)發(fā)打氣球小游戲完整代碼

    javascript+css3開(kāi)發(fā)打氣球小游戲完整代碼

    這是一個(gè)簡(jiǎn)單但是印象深刻的小游戲,打氣球小游戲的實(shí)現(xiàn)代碼,主要基于js和css3,基于css3畫氣球,具體實(shí)現(xiàn)代碼大家參考下本文
    2017-11-11
  • 微信小程序?qū)崿F(xiàn)選項(xiàng)卡效果

    微信小程序?qū)崿F(xiàn)選項(xiàng)卡效果

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)選項(xiàng)卡效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • JS面試高頻單線程與事件循環(huán)深入解析

    JS面試高頻單線程與事件循環(huán)深入解析

    JavaScript是一種單線程語(yǔ)言,它在任何給定時(shí)間只能執(zhí)行一個(gè)任務(wù),然而js確能夠處理異步操作,這得益于其事件循環(huán)(Event Loop)機(jī)制,今天這篇文章帶領(lǐng)大家深入理解JavaScript單線程特性,以及講解事件循環(huán)和js多線程知識(shí)
    2023-10-10
  • JS數(shù)組Object.keys()方法的使用示例

    JS數(shù)組Object.keys()方法的使用示例

    這篇文章主要介紹了JS數(shù)組Object.keys()方法的使用,結(jié)合實(shí)例形式分析了javascript使用Object.keys()方法進(jìn)行數(shù)組遍歷、讀取相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06

最新評(píng)論

临泽县| 察隅县| 沾益县| 大石桥市| 荣成市| 新和县| 南投县| 武安市| 高雄县| 吉木萨尔县| 四会市| 仙居县| 伊金霍洛旗| 怀远县| 南宫市| 墨竹工卡县| 台南县| 汨罗市| 甘南县| 灵武市| 项城市| 卫辉市| 怀集县| 清苑县| 屏边| 衡南县| 宝清县| 隆安县| 周口市| 莎车县| 休宁县| 剑阁县| 青河县| 象山县| 韶关市| 临泽县| 大同县| 铜陵市| 怀化市| 龙陵县| 谢通门县|