国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

javascripteval和JSON之間的聯(lián)系_javascript技巧

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 20:46:39
文檔

javascripteval和JSON之間的聯(lián)系_javascript技巧

javascripteval和JSON之間的聯(lián)系_javascript技巧:如果您想詳細(xì)了解eval和JSON請(qǐng)參考以下鏈接: eval :https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Functions/Eval JSON:http://www.json.org/ eval函數(shù)的工作原理 eval函數(shù)會(huì)評(píng)估一個(gè)給定的含有
推薦度:
導(dǎo)讀javascripteval和JSON之間的聯(lián)系_javascript技巧:如果您想詳細(xì)了解eval和JSON請(qǐng)參考以下鏈接: eval :https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Functions/Eval JSON:http://www.json.org/ eval函數(shù)的工作原理 eval函數(shù)會(huì)評(píng)估一個(gè)給定的含有

如果您想詳細(xì)了解eval和JSON請(qǐng)參考以下鏈接:

eval :https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Functions/Eval

JSON:http://www.json.org/

eval函數(shù)的工作原理

eval函數(shù)會(huì)評(píng)估一個(gè)給定的含有JavaScript代碼的字符串,并且試圖去執(zhí)行包含在字符串里的表達(dá)式或者一系列的合法的JavaScript語句。eval函數(shù)將把最后一個(gè)表達(dá)式或者語句所包含的值或引用作為返回值。

舉例說明

  • eval評(píng)估JavaScript表達(dá)式
  • var bar = 'bar';
    var foobar = eval('"foo" + bar');
    alert(foobar);
  • eval評(píng)估JavaScript語句
  • var bar = 'bar';
    // if variable bar equals 'bar', foobar is the result of
    // last executing statement: bar="foo-bar";
    var foobar = eval('if(bar == "bar") {bar="foo-bar";} else {bar = "bar-foo";}');
    alert(foobar);// change the valuebar = 'foo';
    // now our the last executed statement is: bar = "bar-foo";
    // therefore the value of variable foobar has been changed
    // into 'bar-foo'
    foobar = eval('if(bar == "bar") {bar="foo-bar";} else {bar = "bar-foo";}');
    alert(foobar);

    JSON的格式

    JSON的格式是由大括號(hào)和由冒號(hào)(:)構(gòu)成的名值對(duì)所組成的。注意JSON格式與對(duì)象字面量 (object literals) 的區(qū)別:JSON的名字部分嚴(yán)格用引號(hào)+名字來表示。

    舉例說明

  • 對(duì)象的字面量
  • var objectLiteral = {
    name: "Objector.L",
    age: "24",
    special: "JavaScript",
    sayName: function() {
    return this.name;
    }
    };
  • JSON對(duì)象
  • var jsonFormat = {
    "summary": "Blogs",
    "blogrolls": [
    {
    "title": "Explore JavaScript",
    "link": "http://example.com/"
    },
    {
    "title": "Explore JavaScript",
    "link": "http://example.com/"
    }
    ]
    };

    eval和JSON

    由于Ajax的興起,JSON這種輕量級(jí)的數(shù)據(jù)格式作為客戶端與服務(wù)器之間的傳輸格式逐漸地流行起來,進(jìn)而出現(xiàn)的問題是如何將服務(wù)器端構(gòu)建好的JSON數(shù)據(jù)轉(zhuǎn)化為可用的JavaScript對(duì)象。利用eval函數(shù)無疑是一種簡(jiǎn)單而直接的方法。在轉(zhuǎn)化的時(shí)候需要將JSON字符串的外面包裝一層圓括號(hào):

    var jsonObject = eval("(" + jsonFormat + ")");

    為什么要加括號(hào)?

    加上圓括號(hào)的目的是迫使eval函數(shù)在評(píng)估JavaScript代碼的時(shí)候強(qiáng)制將括號(hào)內(nèi)的表達(dá)式(expression)轉(zhuǎn)化為對(duì)象,而不是作為語句(statement)來執(zhí)行。舉一個(gè)例子,例如對(duì)象字面量{},如若不加外層的括號(hào),那么eval會(huì)將大括號(hào)識(shí)別為JavaScript代碼塊的開始和結(jié)束標(biāo)記,那么{}將會(huì)被認(rèn)為是執(zhí)行了一句空語句。所以下面兩個(gè)執(zhí)行結(jié)果是不同的:

    alert(eval("{}"); // return undefined
    alert(eval("({})");// return object[Object]

    JSON格式的名字部分為什么要加引號(hào)?

    因?yàn)閑val函數(shù)會(huì)將{foo:”bar”}解釋成合法的JavaScript語句,而非表達(dá)式。但是人們往往想要的是讓eval將這段代碼解釋成一個(gè)對(duì)象。所以JSON格式會(huì)強(qiáng)制你去在名字的外側(cè)加上引號(hào)再結(jié)合圓括號(hào),這樣eval就不會(huì)錯(cuò)誤的將JSON解釋成代碼塊。

    舉例說明

  • eval錯(cuò)誤解析語義
  • alert(eval('{foo:"bar"}')); // return "bar", incorrect
  • eval正確解析JSON
  • alert(eval('({"foo": "bar"})')); // return JSON object, correct

    結(jié)論

    理解eval的工作原理和json的嚴(yán)格的限定格式,合理結(jié)合eval和json應(yīng)用于JavaScript的數(shù)據(jù)傳遞和對(duì)象轉(zhuǎn)換。

    following this format:

    eval('{' + jsonString + ')');

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    javascripteval和JSON之間的聯(lián)系_javascript技巧

    javascripteval和JSON之間的聯(lián)系_javascript技巧:如果您想詳細(xì)了解eval和JSON請(qǐng)參考以下鏈接: eval :https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Functions/Eval JSON:http://www.json.org/ eval函數(shù)的工作原理 eval函數(shù)會(huì)評(píng)估一個(gè)給定的含有
    推薦度:
    標(biāo)簽: 技巧 聯(lián)系 js
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久精品无码一区二区日韩av | 91区国产| 精品国产91 | 国产一级特黄高清免费下载 | 亚洲欧美天堂 | 午夜免费福利视频 | 欧美日韩国产va另类试看 | 永久免费观看的毛片的网站下载 | 91欧美亚洲 | 亚洲国产欧美日韩 | 日韩αv| 在线播放真实国产乱子伦 | 成人三级在线观看 | 国产成人精品在视频 | 视频一区二区免费 | 亚洲国产精品免费视频 | 伊人网中文字幕 | 亚洲 欧洲 另类 综合 自拍 | 欧美精品在线看 | 国产精品成人第一区 | 日韩电影一区二区 | 国产欧美日韩精品在钱 | 日韩精品一区二区三区毛片 | 伊人逼逼| 免费看操片 | 国产高清美女一级a毛片久久 | 国产第4页 | 国产精品一区二区四区 | 国产aⅴ精品一区二区三区久久 | 国产日韩欧美视频在线观看 | 亚洲欧洲免费 | 国产一级淫片a免费播放口 国产一级特黄a大片99 | 欧洲精品欧美精品 | 欧美一区三区 | 国产精品亚洲欧美 | 免费视频国产 | 欧美日韩一区二区在线 | 高清在线一区二区 | 午夜日韩 | 国产在线播放免费 | 亚欧免费视频一区二区三区 |