91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

    1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

      手機站
      千鋒教育

      千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

      千鋒教育

      掃一掃進入千鋒手機站

      領(lǐng)取全套視頻
      千鋒教育

      關(guān)注千鋒學(xué)習(xí)站小程序
      隨時隨地免費學(xué)習(xí)課程

      當前位置:首頁  >  技術(shù)干貨  > JS對象轉(zhuǎn)字符串的幾種方法

      JS對象轉(zhuǎn)字符串的幾種方法

      來源:千鋒教育
      發(fā)布人:xqq
      時間: 2023-11-23 00:03:12 1700668992

      一、JSON.stringify方法

      JSON.stringify方法是將一個javascript對象或值轉(zhuǎn)換成為一個 JSON字符串。

      使用方法如下:

      
        var obj = {
          name: 'Tom',
          age: 18,
          grade: {
            math: 90,
            english: 95
          },
          hobbies: ['reading', 'music']
        };
        var str = JSON.stringify(obj);
        console.log(str);
      

      執(zhí)行結(jié)果為:

      
        {"name":"Tom","age":18,"grade":{"math":90,"english":95},"hobbies":["reading","music"]}
      

      json字符串還可以通過JSON.parse方法轉(zhuǎn)換成js對象

      代碼如下:

      
        var obj = JSON.parse(str);
        console.log(obj);
      

      執(zhí)行結(jié)果為:

      
        {name: "Tom", age: 18, grade: {…}, hobbies: Array(2)}
      

      二、Function方法

      Function是js中的一個對象,它有一個toSource方法,可以把一個Function對象轉(zhuǎn)換成js代碼。如果把對象通過toSource方法轉(zhuǎn)為代碼,并去掉function(...)(){...}里的function和(),就可以得到這個對象的代碼形式。

      使用方法如下:

      
        var obj = {
          name: 'Tom',
          age: 18,
          grade: {
            math: 90,
            english: 95
          },
          hobbies: ['reading', 'music']
        };
        var str = (function(){return this;}).call(obj).toSource();
        console.log(str);
      

      執(zhí)行結(jié)果為:

      
        ({name:"Tom",age:18,grade:{math:90,english:95},hobbies:["reading","music"]})
      

      三、eval方法

      eval方法可以執(zhí)行一段字符串形式的js代碼,把一個js對象轉(zhuǎn)換成一個可執(zhí)行的js字符串,所以可以用eval方法直接把一個對象轉(zhuǎn)換成一個字符串。

      使用方法如下:

      
        var obj = {
          name: 'Tom',
          age: 18,
          grade: {
            math: 90,
            english: 95
          },
          hobbies: ['reading', 'music']
        };
        var str = eval('(' + JSON.stringify(obj) + ')');
        console.log(str);
      

      執(zhí)行結(jié)果為:

      
        {name: "Tom", age: 18, grade: {…}, hobbies: Array(2)}
      

      四、toString方法

      toString方法是Object對象的一個原型方法,可以將一個對象轉(zhuǎn)換成字符串。但是這個方法只能將一個對象轉(zhuǎn)換成"[object Object]"這種基本形式的字符串。

      我們可以通過重寫Object對象的toString方法來實現(xiàn)對象轉(zhuǎn)字符串。

      使用方法如下:

      
        Object.prototype.toString = function(){
          return JSON.stringify(this);
        }
        var obj = {
          name: 'Tom',
          age: 18,
          grade: {
            math: 90,
            english: 95
          },
          hobbies: ['reading', 'music']
        };
        console.log(obj.toString());
      

      執(zhí)行結(jié)果為:

      
        {"name":"Tom","age":18,"grade":{"math":90,"english":95},"hobbies":["reading","music"]}
      

      五、自定義方法

      我們也可以通過自定義實現(xiàn)將一個js對象轉(zhuǎn)換成字符串。

      示例代碼如下:

      
        function obj2str(obj, len){
          var ndeep = len || 1;
          var gap = ''; 
          var indent = ''; 
          var i = 0; 
          for(i = 0; i < ndeep; i++)
          {
            indent += ' ';
          }
          gap = ndeep > 1 ? '\n' : '';
          if(typeof obj === 'object')
          { 
            var str = '';
            if(obj.constructor === Array)
            { 
              for(i = 0; i < obj.length; i++)
              {
                str += gap + indent + obj2str(obj[i], ndeep + 1) + ', ';
              }
              return '[' + str.slice(0, -2) + '\n' + indent + ']';
            }
            else
            {
              for(var prop in obj)
              {
                str += gap + indent + '"' + prop + '": ';
                if(typeof obj[prop] === 'object')
                {
                  str += obj2str(obj[prop], ndeep + 1) + ', ';
                }
                else if(typeof obj[prop] === 'function')
                {
                  str += 'undefined' + ', ';
                }
                else
                {
                  str += '"' + obj[prop] + '", ';
                }
              }
              return '{' + str.slice(0, -2) + '\n' + indent + '}';
            }
          } 
          else
          { 
            if(typeof obj === 'string')
            {
              obj = '"' + obj + '"';
            }
            return String(obj);
          }
        }
      
        var obj = {
          name: 'Tom',
          age: 18,
          grade: {
            math: 90,
            english: 95
          },
          hobbies: ['reading', 'music']
        };
      
        var str = obj2str(obj);
        console.log(str);
      

      執(zhí)行結(jié)果為:

      
        {
         "name": "Tom", 
         "age": "18", 
         "grade": {
          "math": "90", 
          "english": "95"
         }, 
         "hobbies": [
          "reading", 
          "music"
         ]
        }
      

      六、總結(jié)

      以上是JS對象轉(zhuǎn)字符串的幾種方法,可以根據(jù)實際需要進行選擇。需要注意的是,F(xiàn)unction和eval方法存在安全問題,建議不要在生產(chǎn)環(huán)境中使用。

      聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
      10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
      請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
      免費領(lǐng)取
      今日已有369人領(lǐng)取成功
      劉同學(xué) 138****2860 剛剛成功領(lǐng)取
      王同學(xué) 131****2015 剛剛成功領(lǐng)取
      張同學(xué) 133****4652 剛剛成功領(lǐng)取
      李同學(xué) 135****8607 剛剛成功領(lǐng)取
      楊同學(xué) 132****5667 剛剛成功領(lǐng)取
      岳同學(xué) 134****6652 剛剛成功領(lǐng)取
      梁同學(xué) 157****2950 剛剛成功領(lǐng)取
      劉同學(xué) 189****1015 剛剛成功領(lǐng)取
      張同學(xué) 155****4678 剛剛成功領(lǐng)取
      鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
      董同學(xué) 138****2867 剛剛成功領(lǐng)取
      周同學(xué) 136****3602 剛剛成功領(lǐng)取
      相關(guān)推薦HOT