久久久久在线观看_又色又爽又黄的免费视频播放_一区中文字幕_日韩电影在线播放

今日焦點 焦點資訊 營銷之道 企業報道 淘寶運營 網站建設 軟件開發 400電話
  當前位置: 首頁 » 資訊 » 軟件開發 » 正文

10個js常用函數

放大字體  縮小字體 發布日期:2018-02-22  來源:企業800網  作者:新格網  瀏覽次數:114  【去百度看看】

1,對于cookie的操作,其中包括了設置、獲取、刪除cookie的操作。下面這個是我在公司的項目里面使用的工具庫里的方法,測試就不測試了

// setcookie()// @about 設置cookiefunction setcookie(name, value) {    var Days = 30;    var exp = new Date();
    exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);    document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
}// getcookie()// @about 獲取cookiefunction getcookie(name) {    var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));    if (arr != null) {        return (arr[2]);
    } else {        return "";
    }
}// delcookie()// @about 刪除cookiefunction delcookie(name) {    var exp = new Date();
    exp.setTime(exp.getTime() - 1);    var cval = getcookie(name);    if (cval != null) {      document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
    }
}

2,隨機返回一個范圍的數字。參數是兩個的時候,返回傳入的兩個參數的區間的隨機函數;參數是一個的時候,返回0到這個數的隨機函數;參數是零個的時候,返回0到255區間的整數,大家可以根據自己的需要進行擴展

function randomNumber(n1,n2){    if(arguments.length===2){        return Math.round(n1+Math.random()*(n2-n1));
    }    
    else if(arguments.length===1){        return Math.round(Math.random()*n1)
    }    //    //    else{        return Math.round(Math.random()*255)
    }  
}

randomNumber(5,10) // 返回5-10的隨機整數,包括5,10randomNumber(10)   // 返回0-10的隨機整數,包括0,10randomNumber()     // 返回0-255的隨機整數,包括0,255

3,到某一個時間的倒計時,傳入的參數以 (YYYY/MM/DD H:mm:ss)

function getEndTime(endTime){    var startDate=new Date();  //開始時間,當前時間    var endDate=new Date(endTime); //結束時間,需傳入時間參數    var t=endDate.getTime()-startDate.getTime();  //時間差的毫秒數    var d=0,h=0,m=0,s=0;    if(t>=0){
      d=Math.floor(t/1000/3600/24);
      h=Math.floor(t/1000/60/60%24);
      m=Math.floor(t/1000/60%60);
      s=Math.floor(t/1000%60);
    } 
    return "剩余時間"+d+"天 "+h+"小時 "+m+" 分鐘"+s+" 秒";
}

getEndTime('2018/8/8 8:0:0') // "剩余時間172天 12小時 10 分鐘47 秒"

4,清除對象中值為空的屬性

function filterParams(obj){    let _newPar = {};    for (let key in obj) {        if ((obj[key] !== 0 && obj[key]) && obj[key].toString().replace(/(^\s*)|(\s*$)/g, '') !== '') {
            _newPar[key] = obj[key];
        }
    }    return _newPar;
}

filterParams({a:0, b:1, c:"010", d:null, e:undefined,f:false}) 
// 當值等于0,null,undefined的時候,就會被過濾

這里涉及到了一個知識點:&&和||運算符的先后順序,我相信大部分的朋友都知道,我就簡單提一下:

  • return a && b || c ,
    根據a來判斷返回值,a 是 false 則肯定返回 c;如果 b , c 都是 true ,那么我們就可以根據 a 來決定b 還是 c ,如果 a 是 false 則返回 c,如果a是true 則返回 b。

    var a = 3  &&  0 || 2;  //2
  • return a || b && c

    根據優先級相當于先算 b && c ,然后和a 相 或;如果a是true,則返回a,不論是b或c,如果a是false,則如果b是false,返回b,如果b是true,返回c;

    var b = 3 || 0  &&  2; // 3var c= 0 || 2 && 3; // 3

更多操作大家可以參考JS運算符&&和|| 及其優先級。


5,獲取,設置url參數,url 參數就是其中 ? 后面的參數

function getUrlPrmt(url) {
    url = url ? url : window.location.href;    let _pa = url.substring(url.indexOf('?') + 1), _arrS = _pa.split('&'), _rs = {};    for (let i = 0, _len = _arrS.length; i < _len; i++) {        let pos = _arrS[i].indexOf('=');        if (pos == -1) {            continue;
        }        let name = _arrS[i].substring(0, pos), value = window.decodeURIComponent(_arrS[i].substring(pos + 1));
        _rs[name] = value;
    }    return _rs;
}

結果如下:

1505342-0152eb4a4f3409ab.png

demo_5.png

這里是設置url參數的函數,如果對象中有nullundefined,則會自動過濾。

function setUrlPrmt(obj) {    let _rs = [];    for (let p in obj) {        if (obj[p] != null && obj[p] != '') {
            _rs.push(p + '=' + obj[p])
        }
    }    return _rs.join('&');
}

setUrlPrmt({a:'0', b:1, c:"010", d:null, e:undefined,f:false}) // "a=0&b=1&c=010"

6,獲取文件后綴名的方法,參數的file_name,即傳進來的文件;返回值是擴展名、后綴名的位置下標以及文件名

function getSuffix(file_name) {    var result = /[^\.]+$/.exec(file_name);    return result;
}

getSuffix('1234.png') // ["png", index: 5, input: "1234.png"]getSuffix('1231344.file'); // ["file", index: 8, input: "1231344.file"]

7,查看瀏覽器是否支持某一個css3的屬性,不如firefox瀏覽器中是不支持-webkit-開頭的屬性的

function supportCss3(style) {    var prefix = ['webkit', 'Moz', 'ms', 'o'],
        i,
        humpString = [],
        htmlStyle = document.documentElement.style,
        _toHumb = function(string) {            return string.replace(/-(\w)/g, function($0, $1) {                return $1.toUpperCase();
            });
        };    for (i in prefix)
        humpString.push(_toHumb(prefix[i] + '-' + style));
    humpString.push(_toHumb(style));    for (i in humpString)        if (humpString[i] in htmlStyle) return true;    return false;
}
這個是chorme中的結果:

1505342-486129382235a683.png

chorme1.png

這個是firefox中的結果:

1505342-4ddfa0163a6d78c0.png

firefox.png


8,怎么判斷一個對象是不是數組類型?

我們采取最常用的方法:根據對象的class屬性(類屬性),跨原型鏈調用toString()方法。

function _getClass(o){    return Object.prototype.toString.call(o).slice(8,-1);
}

_getClass(new Date()); // Date_getClass('maolei');   // String

此外如果你想要了解更多的判斷是不是數組類型的方法,可參考:判斷一個對象是不是數組類型


9,js的排序算法,這里就使用最簡單的冒泡排序,關于js的選擇排序算法,大家可以參考js十大排序算法詳解

function bubbleSort(arr) {    var len = arr.length;    for (var i = 0; i < len; i++) {        for (var j = 0; j < len - 1 - i; j++) {            if (arr[j] > arr[j+1]) {        //相鄰元素兩兩對比                var temp = arr[j+1];        //元素交換
                arr[j+1] = arr[j];
                arr[j] = temp;
            }
        }
    }    return arr;
}var arr=[3,44,38,5,47,15,36,26,27,2,46,4,19,50,48];
bubbleSort(arr);//[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50] ;

10,最后是我在一個前端大神芋頭君live前端筆試題十講中聽到的一個題目:實現一個最簡單的模板引擎,感覺很有趣,就直接以這道題作為結尾吧

render('我是{{name}},年齡{{age}},性別{{sex}}',{
    name:'姓名',
    age:18,
    sex:'女'})

我們可以用正則表達式和replace解決:

var render = function(tpl,data){    return tpl.replace(/\{\{(.+?)\}\}/g,function(m,m1){        return data[m1]
    })
}

render('我是{{name}},年齡{{age}},性別{{sex}}',{    name:'姓名',    age:18,sex:'女',
}) 
// "我是姓名,年齡18,性別女"

相關推薦:

180多個PHP常用函數總結

MySQL中的常用函數詳解

php正則表達式中常用函數的詳解

以上就是10個js常用函數的詳細內容,更多請關注php中文網其它相關文章!

 
 
[ 資訊搜索 ]  [ 加入收藏 ]  [ 告訴好友 ]  [ 打印本文 ]  [ 違規舉報 ]  [ 關閉窗口 ]

 
0條 [查看全部]  相關評論

 
網站首頁 | 關于我們 | 聯系方式 | 使用協議 | 版權隱私 | 網站地圖 | 排名推廣 | 廣告服務 | 積分換禮 | 網站留言 | RSS訂閱 | 皖ICP備2021004516號-14
企業800網 · 提供技術支持