在開發(fā)小程序或者一些框架時會遇到很多的請求回調(diào)都是string,是不是因為string要比object,json他們的性能要優(yōu)
因為。。無論怎么樣,后臺響應(yīng)的都是字符串。所以 js
在收到 object
的時候,也是一串 json
的字符串。然后,js
需要解析這個字符串成對象。性能肯定是一個普通的字符串好的,但是這種性能的優(yōu)勢幾乎可以忽略不計了吧。畢竟有復(fù)雜數(shù)據(jù)結(jié)構(gòu)的話普通字符串是無法解決需求的。
后臺是不能不行不可以直接
傳 Object
的。
原因很簡單:后臺語言五花八門,發(fā)過來的五花八門的 Object 可能前端的 JS 無法直接當(dāng)成JS對象對待。
因此要借助某種對象表示的 標(biāo)準(zhǔn)范式
來把不同種類的對象轉(zhuǎn)化成JS能理解的對象。
或許你已經(jīng)猜到了這種范式就是 JSON
———— 一種對象表示法(以字符串形式)
這樣,任何的后臺語言,都可以把它的對象轉(zhuǎn)成 JSON
(借助庫或者自己寫)然后發(fā)給前端,這樣前端可以很方便的把 JSON 轉(zhuǎn)化成 JS對象。
于是你可以看到:
多語言不同的 Obejct
實現(xiàn) => Obejct
實現(xiàn) => JSON
=> JavaScript
=> JavaScript
對象
反過來也一樣。
當(dāng)然 不僅僅只有 JSON 這一種標(biāo)準(zhǔn)范式,還有許多(xml等等)
或者你可以換一種思維:
后臺的 Object
調(diào)制成 JSON字符串
然后發(fā)往前端。
前端收到后 解調(diào)成 JS Object
至于你說的性能,一般字符串的操作比對象的某些操作快得多。
不過 對象有層次包含關(guān)系還還有多種數(shù)據(jù)類型,這是字符串參數(shù)所沒有的。