亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

關(guān)于 js 對(duì)象 轉(zhuǎn) 字符串 和 深拷貝 的 探討

edgardeng / 3047人閱讀

摘要:項(xiàng)目需要,簡(jiǎn)單的提了個(gè)思路,將對(duì)象轉(zhuǎn)換為顯示聲明形式的字符串例如對(duì)象聲明可以采用形式,所以,采用此格式存儲(chǔ)對(duì)象,可以用方法,直接轉(zhuǎn)換為對(duì)象。未處理字符轉(zhuǎn)意,對(duì)象屬性可能包含與描述沖突的字符如等。

隨著更多語(yǔ)言的支持 json 作為數(shù)據(jù)傳輸和存儲(chǔ)的媒體,已經(jīng)非常成熟且應(yīng)用廣泛。
卻存在致命硬傷,不攜帶 對(duì)象方法 。在數(shù)據(jù)傳輸和存儲(chǔ)中,這是恰當(dāng)?shù)暮秃侠淼摹?/p>

但是在更多的應(yīng)用場(chǎng)景中,又是無(wú)奈的。

項(xiàng)目需要,簡(jiǎn)單的提了個(gè)思路,將對(duì)象轉(zhuǎn)換為顯示聲明形式的字符串
例如:

var person = {
        name:"joe",
        age:40,
        send:function(){
            console.log("hello world")    
        }
    }

對(duì)象聲明可以采用{...}形式,所以,采用此格式存儲(chǔ)對(duì)象,可以用eval()方法,直接轉(zhuǎn)換為對(duì)象。
簡(jiǎn)單寫(xiě)了一個(gè),大概思路如此:

function o2s(o){
    var r = []
    for(p in o){
        if(typeof o[p] == "string"){                
            r.push((Array.isArray(o)?""": p + ":"") + o[p] + """)    
        }else if(typeof o[p] == "object"){
            r.push((Array.isArray(o)?"":p + ":" )+ o2s(o[p]))    
        }else{
            r.push((Array.isArray(o)?"":p + ":") + o[p] )
        }
    }        
        
    r = r.join(",")
    if(Array.isArray(o)){
        return  "[" + r + "]"    
    }else if(typeof o == "object"){
        return  "{" + r + "}"
    }else{
        return r    
    }    
}

捎帶一句,稍微修改即可深拷貝
存在幾個(gè)問(wèn)題,
1.無(wú)法處理循環(huán)引用的對(duì)象,也就是自己包含自己,或者包含了包含自己的對(duì)象的時(shí)候。
2.未處理字符轉(zhuǎn)意,對(duì)象屬性可能包含與描述沖突的字符如“”等。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/99799.html

相關(guān)文章

  • 前端入坑體驗(yàn)與分享

    摘要:同源策略同源策略是一種約定,由公司年引入瀏覽器,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,瀏覽器很容易受到等攻擊。 一、Vue變化檢測(cè) 背景 初始化對(duì)象,屬性未知;某些事件觸發(fā)時(shí),對(duì)象改變(新增屬性),Vue監(jiān)聽(tīng)不到 原因 Vue.js 不能檢測(cè)到對(duì)象屬性的添加或刪除,因?yàn)閂ue.js 在初始化實(shí)例時(shí)將屬性轉(zhuǎn)為 getter/setter,所以屬性必須在 dat...

    hss01248 評(píng)論0 收藏0
  • 個(gè)人小結(jié)--javascript實(shí)用技巧寫(xiě)法建議

    摘要:類(lèi)似的情況還有,方法和方法等。今天我說(shuō)一個(gè)最簡(jiǎn)單。代碼如下和也可以實(shí)現(xiàn),但是生成的是一個(gè)整數(shù),如下分割線其它類(lèi)型數(shù)據(jù)轉(zhuǎn)布爾數(shù)據(jù)下面的轉(zhuǎn)換,大家一看就明白了,不多說(shuō)。緩存變量循環(huán)緩存分割線第一段就是每一次循環(huán)的時(shí)候,都要查詢一次。 1.前言 從大學(xué)到現(xiàn)在,接觸前端已經(jīng)有幾年了,感想方面,就是對(duì)于程序員而言,想要提高自己的技術(shù)水平和編寫(xiě)易于閱讀和維護(hù)的代碼,我覺(jué)得不能每天都是平庸的寫(xiě)代碼,...

    WilsonLiu95 評(píng)論0 收藏0
  • js拷貝拷貝入理解

    摘要:舉個(gè)例子來(lái)說(shuō)明一下什么是淺拷貝什么是深拷貝淺拷貝得出的結(jié)果可以看出是淺拷貝非對(duì)象的屬性值一個(gè)改變不影響另一個(gè)的值對(duì)象屬性是引用賦值所以一個(gè)改變會(huì)影響另一個(gè)的改變出現(xiàn)這種情況的本質(zhì)是對(duì)象是按引用賦值的深拷貝指的是拷貝一個(gè)對(duì)象,改變一個(gè)值不影響 舉個(gè)例子來(lái)說(shuō)明一下什么是淺拷貝什么是深拷貝 淺拷貝 var x = { a: 1, b: {f: { g: 1 ...

    lastSeries 評(píng)論0 收藏0
  • 專題

    摘要:專題安全攻防專題跨站腳本攻擊,原理利用系統(tǒng)漏洞,將具有惡意攻擊行為的可執(zhí)行腳本植入系統(tǒng),且會(huì)自動(dòng)執(zhí)行。 專題 /* * web安全攻防專題 * ------------------------------------------------------------------------ * xss:跨站腳本攻擊(XSS,Cross-site scripting) * * * 1、...

    Leck1e 評(píng)論0 收藏0
  • JS類(lèi)型

    摘要:中是確定的,是的引用后面,變成的引用,但中的是確定的,所以在中又加上了深拷貝方法方法一如果這樣寫(xiě),對(duì)象中的簡(jiǎn)單類(lèi)型是深拷貝,而復(fù)雜類(lèi)型是簡(jiǎn)單拷貝方法二循環(huán)引用垃圾回收如果一個(gè)對(duì)象沒(méi)有被引用,它就是垃圾,將被引用被賦值后,這個(gè)函數(shù)不是垃圾 JS 里的類(lèi)型 number類(lèi)型轉(zhuǎn) `string`:`toString`、String()全局函數(shù)、加上空字符串 `boolean:Boolean(...

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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<