成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript高級(jí)程序設(shè)計(jì)-摘要筆記-6

Batkid / 394人閱讀

摘要:關(guān)于對(duì)象定義了全局對(duì)象。支持的瀏覽器有除了接受要序列化的對(duì)象外,還可以接受另外兩個(gè)參數(shù)。如果是數(shù)值,則表示每個(gè)級(jí)別縮進(jìn)的空格數(shù),最大,超過的值自動(dòng)轉(zhuǎn)換成。字符串長度超過,結(jié)果中將只出現(xiàn)前個(gè)字符。會(huì)在結(jié)果字符串中插入換行符提高可讀性。

關(guān)于JSON 1. JSON 對(duì)象

es5 定義了全局對(duì)象 JSON。
支持的瀏覽器有 IE8+ 、Firefox 3.5+ 、Safari 4+、Chrome、Opera 10.5+

2. JSON.stringify()

JSON.stringify() 除了接受要序列化的對(duì)象外,還可以接受另外兩個(gè)參數(shù)。
第一個(gè)參數(shù)是一個(gè)過濾器,可以是一個(gè)數(shù)組或函數(shù),第二個(gè)參數(shù)是一個(gè)選項(xiàng),表示是否在JSON字符串中保留縮進(jìn)。
如:

var book = {
  title: "Professional JS",
  authors: ["abc", "def"],
  edition: 3,
  year: 2011
}

第一個(gè)參數(shù)是數(shù)組

var jsonText1 = JSON.stringify(book, ["title", "edition"])
console.log(jsonText1) // "{"title":"Professional JS","edition":3}"

第一個(gè)參數(shù)是函數(shù)

var jsonText2 = JSON.stringify(book, function (key, value) {
  switch (key) {
    case "authors":
      return value.join(",");
    case "year":
      return 2016;
    case "edition":
      return undefined;
    default:
      return value;
  }
})
console.log(jsonText2) // "{"title":"Professional JS","authors":"abc,def","year":2016}"

第二個(gè)參數(shù)用于控制結(jié)果中的縮進(jìn)和空白符。
如果是數(shù)值,則表示每個(gè)級(jí)別縮進(jìn)的空格數(shù),最大10,超過10 的值自動(dòng)轉(zhuǎn)換成10。
如果是字符串,則用作縮進(jìn)字符。字符串長度超過10,結(jié)果中將只出現(xiàn)前10個(gè)字符。
會(huì)在結(jié)果字符串中插入換行符提高可讀性。
如:

var jsonText3 = JSON.stringify(book, null, 6)
console.log(jsonText3)
// "{
//       "title": "Professional JS",
//       "authors": [
//             "abc",
//             "def"
//       ],
//       "edition": 3,
//       "year": 2011
// }"
var jsonText4 = JSON.stringify(book, null, "--")
console.log(jsonText4)
// "{
// --"title": "Professional JS",
// --"authors": [
// ----"abc",
// ----"def"
// --],
// --"edition": 3,
// --"year": 2011
// }"
3. toJSON() 方法

可以給對(duì)象定義 toJSON() 方法,返回自身的 JSON 數(shù)據(jù)格式,此方法優(yōu)先級(jí)最高
如:

var book = {
  title: "Professional JS",
  authors: ["abc", "def"],
  edition: 3,
  year: 2011,
  toJSON: function () {
    return {
      name: "wfc"
    }
  }
}
var jsonText = JSON.stringify(book, null, 1)
console.log(jsonText)
// "{
//  "name": "wfc"
// }"

注意: JSON.stringify() 處理的優(yōu)先級(jí)為 toJSON() => 第二個(gè)參數(shù) => 第三個(gè)參數(shù)。
4. JSON.parse()

JSON.parse() 接受另一個(gè)參數(shù),該參數(shù)是一個(gè)函數(shù),將在每個(gè)健值對(duì)上采用,類似于 JSON.stringify() 的過濾函數(shù)。
如:

var book = {
  title: "Professional JS",
  authors: ["abc", "def"],
  edition: 3,
  year: 2011,
  releaseDate: new Date(2016,11,22)
}
var jsonText = JSON.stringify(book, null, 1)
console.log(jsonText)
// "
// json.html:48 {
//  "title": "Professional JS",
//  "authors": [
//   "abc",
//   "def"
//  ],
//  "edition": 3,
//  "year": 2011,
//  "releaseDate": "2016-12-21T16:00:00.000Z"
// }"
var copyBook = JSON.parse(jsonText, function (key, value) {
  if (key === "releaseDate") {
    console.log(value) // "2016-12-21T16:00:00.000Z"
    return new Date(value)
  } else {
    return value
  }
})

JSON部分結(jié)束

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

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

相關(guān)文章

  • JavaScript高級(jí)程序設(shè)計(jì)摘要筆記-3

    摘要:如果重設(shè)構(gòu)造函數(shù)的原型對(duì)象,那么,會(huì)切斷新的原型對(duì)象和任何之前已經(jīng)存在的構(gòu)造函數(shù)實(shí)例之間的聯(lián)系,它們引用的仍然是最初的原型。說明返回的對(duì)象與構(gòu)造函數(shù)或者與構(gòu)造函數(shù)的原型屬性沒有關(guān)系。 說明: 此摘要筆記系列是我最近看《JavaScript高級(jí)程序設(shè)計(jì)(第3版)》隨手所記。里面分條列舉了一些我認(rèn)為重要的、需要記下的、對(duì)我有幫助的點(diǎn),是按照我看的順序來的。摘要筆記本身沒有系統(tǒng)性,沒有全面性...

    AndroidTraveler 評(píng)論0 收藏0
  • JavaScript高級(jí)程序設(shè)計(jì)摘要筆記-1

    摘要:說明此摘要筆記系列是我最近看高級(jí)程序設(shè)計(jì)第版隨手所記。摘要筆記本身沒有系統(tǒng)性,沒有全面性可言,寫在這里供有一定基礎(chǔ)的前端開發(fā)者參考交流。對(duì)每一項(xiàng)運(yùn)行給定函數(shù),返回該函數(shù)會(huì)返回的項(xiàng)組成的數(shù)組。是的反操作是的反操作第一部分結(jié)束。 說明: 此摘要筆記系列是我最近看《JavaScript高級(jí)程序設(shè)計(jì)(第3版)》隨手所記。 里面分條列舉了一些我認(rèn)為重要的、需要記下的、對(duì)我有幫助的點(diǎn),是按照我看...

    chavesgu 評(píng)論0 收藏0
  • JavaScript高級(jí)程序設(shè)計(jì)摘要筆記-4

    摘要:思路是,使用原型鏈對(duì)原型屬性和方法進(jìn)行繼承,借用構(gòu)造函數(shù)實(shí)現(xiàn)對(duì)實(shí)例屬性的繼承。注意使用寄生式繼承來為對(duì)象添加函數(shù),會(huì)由于不能做到函數(shù)復(fù)用而降低效率,這一點(diǎn)與構(gòu)造函數(shù)模式類似。無論什么情況下都會(huì)調(diào)用兩次超類型的構(gòu)造函數(shù)。 說明: 此摘要筆記系列是我最近看《JavaScript高級(jí)程序設(shè)計(jì)(第3版)》隨手所記。里面分條列舉了一些我認(rèn)為重要的、需要記下的、對(duì)我有幫助的點(diǎn),是按照我看的順序來的...

    zr_hebo 評(píng)論0 收藏0
  • JavaScript高級(jí)程序設(shè)計(jì)摘要筆記-5

    摘要:函數(shù)表達(dá)式和閉包函數(shù)聲明的一個(gè)重要特征是函數(shù)聲明提升如遞歸遞歸函數(shù)是在一個(gè)函數(shù)通過名字調(diào)用自身的情況下構(gòu)成的。注意中已經(jīng)是塊級(jí)作用域了,所以這些東西感覺實(shí)際用途沒有那么大,但是對(duì)理解閉包對(duì)作用域鏈中的屬性的引用,這一點(diǎn)還是有作用的。 函數(shù)表達(dá)式和閉包 1. 函數(shù)聲明的一個(gè)重要特征是函數(shù)聲明提升 如: sayHi() function sayHi () { console.log(h...

    JerryWangSAP 評(píng)論0 收藏0
  • JavaScript高級(jí)程序設(shè)計(jì)摘要筆記-2

    摘要:說明此摘要筆記系列是我最近看高級(jí)程序設(shè)計(jì)第版隨手所記。其中,描述符對(duì)象的屬性必須是設(shè)置其中一個(gè)或多個(gè)值,可以修改對(duì)應(yīng)的特性值。如支持的瀏覽器,可以取得指定屬性的描述符。 說明: 此摘要筆記系列是我最近看《JavaScript高級(jí)程序設(shè)計(jì)(第3版)》隨手所記。里面分條列舉了一些我認(rèn)為重要的、需要記下的、對(duì)我有幫助的點(diǎn),是按照我看的順序來的。摘要筆記本身沒有系統(tǒng)性,沒有全面性可言,寫在這里...

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

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

0條評(píng)論

Batkid

|高級(jí)講師

TA的文章

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