머리말
소위 "시맨틱 버전 번호"는 의미론이 버전 번호에 반영되거나 버전 번호 자체가 의미가 있고 더 이상 임의의 숫자가 아님을 의미합니다. 이 사양은 버전 번호의 각 숫자의 의미에 대한 비교적 엄격한 설명을 제공합니다. 물론, 대부분의 콘텐츠는 여전히 앞에서 언급 한 업계 계약을 따르기 때문에 버전 번호 인식을 가진 개발자 가이 사양을 수락하기가 쉽습니다.
모바일 앱의 타사 개발에서 우리는 종종 다른 버전으로 인해 JS SDK 또는 JS API의 차이 또는 지원을 유발하는 몇 가지 문제에 직면합니다. 모바일 프론트 엔드의 경우 실제 타사 개발에서 앱의 버전 번호를 기반으로 일부 특수 비즈니스 로직 처리가 필요할 수 있습니다.
시맨틱 버전 번호
일반 시맨틱 버전 번호는 일반적으로 다음과 같이 정의됩니다.
major_version_number.minor_version_number [.revision_number [.build_number]] 메이저 버전 번호. Subversion Number [. Revised 버전 번호 [.compiled 버전 번호]]
구분기는 일반적으로 사용됩니다.
시맨틱 버전 번호 비교 방법
이런 식으로 버전 번호를 비교할 수 있습니다. 여기에 대략적인 방법이 있습니다.
/** * 버전 비교 versioncompare * @param {String} Curver current 버전. * @param {String} promotever 비교 버전. * @return {boolean} false 현재 버전은 비교 버전이 true를 반환하는 것보다 작습니다. * * 사용 * version compare ( "6.3", "5.2.5"); // 거짓. * versioncompare ( "6.1", "6.1"); // 거짓. * versioncompare ( "6.1.5", "6.2"); // 진실. */var versioncompare = function (Curver, Promotever) {Curver = Curver || "0.0.0"; promotever = promotever || "0.0.0"; if (currver == promotever) false를 반환합니다. var currverarr = currver.split ( "."); var romoteverarr = 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를 반환하는 것보다 작다는 것입니다. 비즈니스 로직에 따라 코드를 수정할 수 있습니다.
예를 들어, WeChat의 버전 번호를 얻으려면 다음과 같이 쓸 수 있습니다.
var wechatinfo = navigator.useragent.match (/micromessenger // ([/d /.] +)/ i); var currver = wechatinfo [1]; if (versioncompare (curver, "6.2.5")) {// 비즈니스 로직}알아채다:
시간이 서두르고이 방법은 일반적인 방법 일뿐입니다. 기본 버전이나 하위 버전 만 비교하는 방법을 제공하지 않고 최종 전체 버전 번호를 비교합니다.
요약
위는이 기사의 전체 내용입니다. 모든 사람의 공부 나 일에 도움이되기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다.