亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

javascript中eval函數用法分析

2019-11-20 12:36:28
字體:
來源:轉載
供稿:網友

本文實例分析了javascript中eval函數用法。分享給大家供大家參考。具體分析如下:

eval()只有一個參數,如果傳入的參數不是字符串,則直接返回這個參數。否則會將字符串當成js代碼進行編譯,如果編譯失敗則拋出語法錯誤(SyntaxError)異常。如果編譯成功則開始執行這段代碼,并返回字符串中的最后一個表達式或語句的值;如果最后一個表達式或語句沒有值,則最終返回undefined。如果字符串拋出異常,則該異常將把該調用傳遞給eval();

eval()最為重要的是,它使用了調用它的變量作用域環境,即它查找變量的值和定義新變量和函數的操作和局部作用域的代碼完全一樣。

eval("var x = 100");eval("var y = 11");console.log(x * y); //x * y == 1100eval("function foo(x){return Math.pow(x,x);}");console.log(foo(5)); // 25

eval字符串執行時的上下文環境和調用函數的上下文環境是一樣的,這不能使其作為函數的一部分來運行:

var foo = function(a){  eval(a);  };foo("return;");

以上代碼因為執行eval(a)的上下文是全局的,在全局上下文中使用return會拋出語法錯誤:return not in function.

eval()具有修改局部變量的能力,這對于js優化器來說是一個很大的問題。為了讓js解釋器實現更加簡化,ECMAScript3標準規定了任何解釋器都不允許對eval()賦予別名,如果eval()函數通過別名調用會拋出一個EvalError異常。
實際上大多數的實現不是這樣的。當通過別名調用時,eval()會將其字符串當成頂層的全局代碼來執行。執行代碼可能會定義新的全局變量和全局函數,或給全局變量賦值,但卻不能使用或修改主調用函數中的局部變量,因此不會影響到函數內部的代碼優化。

而在ECMAScript5中,態度有所不同:反對拋出EvalError異常。在ECMAScript5中當直接使用非限定名來調用eval()函數時,通常稱為”直接eval(direct eval)”;直接調用eval()時,總是在調用它的上下文作用域內執行。而其他的間接調用則使用全局對象作為其上下文作用域,且無法讀寫和定義局部變量和函數。(但實際我在firebug測試里發現,都是修改了全局變量 :( )

需要真正eval來執行代碼段的場景并不多見,可能更多的會使用全局eval而不是局部eval。

IE9之前的早期版本IE當通過別名調用eval()時并不是全局eval,但IE定義了一個execScript()的全局函數來完成全局eval的功能(單核eval()稍有不同,execScript()總是返回null)。

ECMAScript5嚴格模式對eval函數行為施加了更多的限制。在嚴格模式下使用eval或eval執行代碼以”use strict”指令開始時,eval是私有上下文環境中的局部eval.此外嚴格模式將eval列為保留字,這讓eval()更像一個運算符,不能用一個別名覆蓋eval()函數,并且變量名、函數名、函數參數或者異常捕獲的參數都不能取名為”eval”.

希望本文所述對大家的javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美久久精品午夜青青大伊人| 日韩av最新在线| 久久精品国产亚洲精品| 国产视频久久久久久久| 欧美精品在线免费观看| 国产精品美女呻吟| 北条麻妃一区二区三区中文字幕| 亚洲精品中文字幕女同| 亚洲精品suv精品一区二区| 成人激情视频在线| 欧美国产日韩二区| 久久精品人人做人人爽| 九九热最新视频//这里只有精品| 欧美日韩亚洲视频| 日韩网站免费观看高清| 久久久电影免费观看完整版| 高清一区二区三区日本久| 国产精欧美一区二区三区| 欧美激情按摩在线| 成人性生交xxxxx网站| 欧美巨大黑人极品精男| 久久人人97超碰精品888| 国产xxx69麻豆国语对白| 国产视频综合在线| 亚洲久久久久久久久久久| 欧美日韩一区二区三区在线免费观看| 亚洲天堂成人在线| 亚洲精品电影在线观看| 国产精品丝袜白浆摸在线| 人人澡人人澡人人看欧美| 亚洲天堂2020| 2019中文字幕免费视频| 91丨九色丨国产在线| 81精品国产乱码久久久久久| 成人精品一区二区三区电影黑人| 亚洲午夜久久久影院| 国产欧美韩国高清| 国产中文日韩欧美| 97精品一区二区三区| 日韩精品在线免费播放| www日韩中文字幕在线看| 91免费视频网站| 97人人做人人爱| 一本一道久久a久久精品逆3p| 亚洲一区二区三区四区在线播放| 精品免费在线观看| 欧美激情一区二区三区在线视频观看| 日韩电影中文 亚洲精品乱码| 欧美小视频在线观看| 亚洲午夜av久久乱码| 国产精品美腿一区在线看| 国产精品美女久久| 中日韩美女免费视频网站在线观看| 日本欧美黄网站| 91成人在线视频| 国产精品国产自产拍高清av水多| 91久久国产综合久久91精品网站| 中文字幕亚洲综合| 欧美黄色片视频| 欧美专区国产专区| 成人激情视频网| 日韩欧美黄色动漫| 欧美激情视频给我| 91精品视频大全| 欧美大荫蒂xxx| 92看片淫黄大片看国产片| 国产91精品网站| 亚洲欧洲国产伦综合| 国产精品入口福利| 久久久久国产精品免费| 国产精品美女www| 国产香蕉一区二区三区在线视频| 国产精品一区二区三区免费视频| 91色中文字幕| 91嫩草在线视频| 亚洲精品福利资源站| 国产精品美女主播在线观看纯欲| 上原亚衣av一区二区三区| 成人春色激情网| 久久99精品久久久久久青青91| 日本不卡视频在线播放| 日韩va亚洲va欧洲va国产| 中文字幕亚洲一区二区三区| 免费成人高清视频| 最新69国产成人精品视频免费| 亚洲成色777777在线观看影院| 日韩免费精品视频| 久久久久久国产免费| 中文字幕久久久| 久久久久久综合网天天| 精品久久久久久国产| 欧美精品久久久久a| 18一19gay欧美视频网站| 欧美日韩亚洲成人| 欧美精品成人在线| 欧美激情亚洲一区| 亚洲欧美资源在线| 日韩中文字幕在线精品| 亚洲图片欧洲图片av| 亚洲视屏在线播放| 亚洲精品福利资源站| 久久精品成人欧美大片古装| 久久久91精品国产一区不卡| 国产精品欧美久久久| 欧美在线观看一区二区三区| 亚洲国产精品网站| 亚洲欧美日本另类| 久久久视频在线| 亚洲中国色老太| 亚洲精品电影在线| 亚洲欧美自拍一区| 北条麻妃在线一区二区| 国产亚洲精品综合一区91| 亚洲精品国精品久久99热| 欧美精品在线免费观看| 欧美亚洲激情在线| 日韩av手机在线| 日韩中文字幕欧美| 国产精品美女免费| 欧美午夜久久久| 亚洲精品福利资源站| 不用播放器成人网| 欧美激情18p| 亚洲视频精品在线| 国产日韩一区在线| 日韩亚洲综合在线| 不卡在线观看电视剧完整版| 国产一区二区三区高清在线观看| 97在线观看免费| 久久国产精品亚洲| 久久综合伊人77777蜜臀| 欧美国产日韩一区二区三区| 一本色道久久综合狠狠躁篇的优点| 亚洲一区二区久久久| 亚洲午夜精品久久久久久久久久久久| 欧美日韩国产影院| 97色在线视频观看| 日韩欧美亚洲成人| 欧美激情精品久久久久久黑人| 国产午夜精品视频免费不卡69堂| 欧美乱人伦中文字幕在线| 欧美精品一区二区三区国产精品| 97在线视频免费观看| 国产一区二区三区精品久久久| 俺去啦;欧美日韩| 亚洲欧美自拍一区| 日韩中文字幕免费视频| 欧美国产日韩视频| 亚洲第一免费播放区| 日本精品一区二区三区在线播放视频| 中文字幕一区电影| 国产视频久久久| 国产精品免费看久久久香蕉| 久久综合伊人77777尤物| 欧美最猛性xxxx| 亚洲丝袜av一区| 亚洲香蕉成人av网站在线观看| 亚洲欧美另类自拍| 精品欧美aⅴ在线网站| 欧美日韩激情视频8区| 久久久久久久97| 中文字幕日本精品| 国产日韩欧美在线播放| 另类少妇人与禽zozz0性伦|