国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

前端開(kāi)發(fā)常用的函數(shù)

YacaToy / 1838人閱讀

摘要:實(shí)用的函數(shù)集合總結(jié)基本類(lèi)型的判斷在項(xiàng)目實(shí)例中,難免要做一些容錯(cuò)處理或者是對(duì)實(shí)例的類(lèi)型判斷,那么就可以把這部分的判斷整理成公共的文件,供全局使用。

實(shí)用的函數(shù)集合總結(jié) 基本類(lèi)型的判斷

在項(xiàng)目實(shí)例中,難免要做一些容錯(cuò)處理或者是對(duì)實(shí)例的類(lèi)型判斷,那么就可以把這部分的判斷整理成公共的js文件,供全局使用。

利用object.prototype.toString.call可以判斷對(duì)象的類(lèi)型

變量的兩種類(lèi)型值:
1、基本類(lèi)型:String,Number,Boolean,undefined,null,按值訪問(wèn)
2、引用類(lèi)型:Object,Array, 對(duì)象保存在內(nèi)存中

可以作為項(xiàng)目的工具類(lèi),比如命名為tool.js


export default isNumber(value) {
    return Object.prototype.toString.call(value) == "[object Number]"
}
export default isString(value) {
    return Object.prototype.toString.call(value) == "[object String]"
}
export default isArray(value) {
    return Object.prototype.toString.call(value) == "[object Array]"
}
export default isBoolean(value) {
    return Object.prototype.toString.call(value) == "[object Boolean]"
}
export default isUndefined(value) {
    return value === undefined
}
export default isNull(value) {
    return value === null
}
export default isSymbol(value) {
    return Object.prototype.toString.call(value) == "[object Symbol]"
}
export default isObject(value) {
    return ( Object.prototype.toString.call(value) == "[object Object]"
     ||
        // if it isn"t a primitive value, then it is a common object
        (
          !isNumber(value) &&
          !isString(value) &&
          !isBoolean(value) &&
          !isArray(value) &&
          !isNull(value) &&
          !isFunction(value) &&
          !isUndefined(value) &&
          !isSymbol(value)
        )
    )
}

//是否是一個(gè)空對(duì)象
export function isEmptyObject(obj) {
    if(!isObject(obj)) {
        return false
    }
    if(var key in obj) {
        return false
    }
    return true
}

//是否是一個(gè)空數(shù)組
export function isEmptyArray(array) {
    if(!isArray(array)) {
        return false
    }
    return array.length > 0 ? false : true
}

export function isFunction(value) {
  return Object.prototype.toString.call(value) == "[object Function]";
}



引用類(lèi)型克隆合并

Object.assign方法實(shí)行的是淺拷貝,而不是深拷貝。也就是說(shuō),如果拷貝后的結(jié)果是兩個(gè)對(duì)象指向同一引用地址,修改其中一個(gè)對(duì)象的屬性,則另一個(gè)對(duì)象的屬性也會(huì)改變
所以改變引用類(lèi)型值時(shí)會(huì)影響到拷貝的值

var obj1 = {a: {b: 1}};  
var obj2 = Object.assign({}, obj1);  
obj1.a.b = 2;  
obj2.a.b // 2 

下面extend函數(shù)就是解決上面的問(wèn)題

/*
    深度合并內(nèi)容
    引用類(lèi)型克隆合并
    arguments[0] = target
    arguments type is Object Or Array
    多內(nèi)容合并覆蓋優(yōu)先級(jí): arguments[0]

此時(shí)引用類(lèi)型克隆出來(lái)的對(duì)象就是完全獨(dú)立的對(duì)象了,源對(duì)象修改屬性不會(huì)影響到克隆的對(duì)象

var obj1 = {a: {b: 1}};  
var obj2 = extend({}, obj1)  
obj1.a.b = 2;  
obj2.a.b // 1

可以合并 對(duì)象與對(duì)象,數(shù)組與數(shù)組,對(duì)象與數(shù)組等

不同時(shí)間形式的輸出

時(shí)間戳是一樣的,有時(shí)需要根據(jù)需求輸出不一樣格式的時(shí)間形式

yyyy年MM月dd日 hh:mm:ss

yyyy年MM月dd日

yyyy-mm-dd

/*@param date 時(shí)間戳*/
/*@param format 時(shí)間格式*/
function dateFormat(date,format){
    if(!format || typeof format !== "string"){
      console.error("format is undefiend or type is Error");
      return "";
    }

    date = date instanceof Date? date : (typeof date === "number"|| typeof date === "string")? new Date(date): new Date();

    //解析
    var formatReg = {
      "y+": date.getFullYear(),
      "M+": date.getMonth()+1,
      "d+": date.getDate(),
      "h+": date.getHours(),
      "m+": date.getMinutes(),
      "s+": date.getSeconds()
    }
    for(var reg in formatReg){
      if(new RegExp(reg).test(format)){
            var match = RegExp.lastMatch;
            format = format.replace(match, formatReg[reg]< 10 ? "0"+formatReg[reg]: formatReg[reg].toString() );
      }
    }
    return format;
}

這樣,把你想要的時(shí)間的格式和時(shí)間戳傳入即可。

dateFormat(new Date().getTime(),"yyyy-MM-dd hh:mm:ss") 
dateFormat(new Date().getTime(),"MM-dd-yy hh:mm:ss") 
...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/99396.html

相關(guān)文章

  • 前端基礎(chǔ)入門(mén)五(掌握jQuery常用api,實(shí)現(xiàn)動(dòng)態(tài)效果)

    摘要:基本概念學(xué)習(xí)目標(biāo)學(xué)會(huì)如何使用,掌握的常用,能夠使用實(shí)現(xiàn)常見(jiàn)的效果。想要實(shí)現(xiàn)簡(jiǎn)單的動(dòng)畫(huà)效果,也很麻煩代碼冗余。實(shí)現(xiàn)動(dòng)畫(huà)非常簡(jiǎn)單,而且功能更加的強(qiáng)大。注意選擇器返回的是對(duì)象。 jQuery基本概念 學(xué)習(xí)目標(biāo):學(xué)會(huì)如何使用jQuery,掌握jQuery的常用api,能夠使用jQuery實(shí)現(xiàn)常見(jiàn)的效果。 為什么要學(xué)習(xí)jQuery? 【01-讓div顯示與設(shè)置內(nèi)容.html】 使用javasc...

    nevermind 評(píng)論0 收藏0
  • 前端基礎(chǔ)入門(mén)五(掌握jQuery常用api,實(shí)現(xiàn)動(dòng)態(tài)效果)

    摘要:基本概念學(xué)習(xí)目標(biāo)學(xué)會(huì)如何使用,掌握的常用,能夠使用實(shí)現(xiàn)常見(jiàn)的效果。想要實(shí)現(xiàn)簡(jiǎn)單的動(dòng)畫(huà)效果,也很麻煩代碼冗余。實(shí)現(xiàn)動(dòng)畫(huà)非常簡(jiǎn)單,而且功能更加的強(qiáng)大。注意選擇器返回的是對(duì)象。 jQuery基本概念 學(xué)習(xí)目標(biāo):學(xué)會(huì)如何使用jQuery,掌握jQuery的常用api,能夠使用jQuery實(shí)現(xiàn)常見(jiàn)的效果。 為什么要學(xué)習(xí)jQuery? 【01-讓div顯示與設(shè)置內(nèi)容.html】 使用javasc...

    codecook 評(píng)論0 收藏0
  • 前端基礎(chǔ)入門(mén)五(掌握jQuery常用api,實(shí)現(xiàn)動(dòng)態(tài)效果)

    摘要:基本概念學(xué)習(xí)目標(biāo)學(xué)會(huì)如何使用,掌握的常用,能夠使用實(shí)現(xiàn)常見(jiàn)的效果。想要實(shí)現(xiàn)簡(jiǎn)單的動(dòng)畫(huà)效果,也很麻煩代碼冗余。實(shí)現(xiàn)動(dòng)畫(huà)非常簡(jiǎn)單,而且功能更加的強(qiáng)大。注意選擇器返回的是對(duì)象。 jQuery基本概念 學(xué)習(xí)目標(biāo):學(xué)會(huì)如何使用jQuery,掌握jQuery的常用api,能夠使用jQuery實(shí)現(xiàn)常見(jiàn)的效果。 為什么要學(xué)習(xí)jQuery? 【01-讓div顯示與設(shè)置內(nèi)容.html】 使用javasc...

    WalkerXu 評(píng)論0 收藏0
  • 前端基礎(chǔ)入門(mén)五(掌握jQuery常用api,實(shí)現(xiàn)動(dòng)態(tài)效果)

    摘要:基本概念學(xué)習(xí)目標(biāo)學(xué)會(huì)如何使用,掌握的常用,能夠使用實(shí)現(xiàn)常見(jiàn)的效果。想要實(shí)現(xiàn)簡(jiǎn)單的動(dòng)畫(huà)效果,也很麻煩代碼冗余。實(shí)現(xiàn)動(dòng)畫(huà)非常簡(jiǎn)單,而且功能更加的強(qiáng)大。注意選擇器返回的是對(duì)象。 jQuery基本概念 學(xué)習(xí)目標(biāo):學(xué)會(huì)如何使用jQuery,掌握jQuery的常用api,能夠使用jQuery實(shí)現(xiàn)常見(jiàn)的效果。 為什么要學(xué)習(xí)jQuery? 【01-讓div顯示與設(shè)置內(nèi)容.html】 使用javasc...

    widuu 評(píng)論0 收藏0
  • JavasScript重難點(diǎn)知識(shí)

    摘要:忍者級(jí)別的函數(shù)操作對(duì)于什么是匿名函數(shù),這里就不做過(guò)多介紹了。我們需要知道的是,對(duì)于而言,匿名函數(shù)是一個(gè)很重要且具有邏輯性的特性。通常,匿名函數(shù)的使用情況是創(chuàng)建一個(gè)供以后使用的函數(shù)。 JS 中的遞歸 遞歸, 遞歸基礎(chǔ), 斐波那契數(shù)列, 使用遞歸方式深拷貝, 自定義事件添加 這一次,徹底弄懂 JavaScript 執(zhí)行機(jī)制 本文的目的就是要保證你徹底弄懂javascript的執(zhí)行機(jī)制,如果...

    forsigner 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<