本文小編為大家詳細介紹“eval是不是es6中的方法”,內容詳細,步驟清晰,細節處理妥當,希望這篇“eval是不是es6中的方法”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
創新互聯堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網站制作、成都網站建設、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的河間網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
eval不是es6中的方法;該方法是JavaScript中的,用于計算JavaScript字符串,并把字符串當做腳本代碼來執行,如果傳入的字符串是表達式則返回表達式求值結果,否則返回undefined,語法為“eval(string)”。
本教程操作環境:windows10系統、ECMAScript 6.0版本、Dell G3電腦。
eval() 函數計算 JavaScript 字符串,并把它作為腳本代碼來執行。
如果參數是一個表達式,eval() 函數將執行表達式。如果參數是Javascript語句,eval()將執行 Javascript 語句。
eval() 函數會將傳入的字符串當做 JavaScript 代碼進行執行,如果傳入的字符串是表達式則返回表達式求值結果,否則返回 undefined 。
描述
如果傳入 eval() 的參數不是字符串,則會直接返回該參數。
非嚴格模式下直接調用 eval() 時,里面使用 var 聲明的變量和使用 function 聲明的函數會修改當前詞法作用域,里面使用 let 和 const 聲明的變量不會修改當前詞法作用域,但是會在當前創建新的詞法作用域。
非嚴格模式下間接引用 eval() 時,會直接運行在全局環境中,里面使用 var 聲明的變量和使用 function 聲明的函數會修改全局詞法作用域,里面使用 let 和 const 聲明的變量不會修改全局詞法作用域,但是會在全局環境創建新的詞法作用域。
嚴格模式下直接調用的 eval() 時,會在當前創建一個新的獨立的詞法作用域。
嚴格模式下間接引用的 eval() 時(只有在 eval() 內的字符串里面開啟嚴格模式時,字符串才會以嚴格模式執行),會在全局環境創建一個新的獨立的詞法作用域。
使用 window.eval() 等同于間接引用 eval() 。
eval() 中執行的代碼只能調用 JS 解釋器(Interpreter)來解釋執行,無法被即時編譯器(JIT Compiler)優化, eval() 中的執行的代碼可能會導致 JS 引擎在已經生成的機器代碼中進行變量查找和賦值,帶來性能問題。
eval() 使用不當可能會導致里面執行的字符串容易遭受惡意修改,帶來安全問題(比如 XSS 攻擊)。
使用 eval() 會干擾代碼壓縮工具的行為。代碼壓縮工具一般會將局部變量名重命名為更短的變量名(如 a 和 b 等),以便減小代碼體積。當使用了 eval() 時,由于外部的局部變量可能會被 eval() 訪問到,代碼壓縮工具便不會對可能會被 eval() 訪問到的局部變量名進行壓縮,會降低代碼壓縮率。
語法
eval(string)
示例如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>123</title> </head> <body> <script> eval("x=10;y=20;document.write(x*y)"); document.write("<br>" + eval("2+2")); document.write("<br>" + eval(x+17)); </script> </body> </html>
輸出結果:
讀到這里,這篇“eval是不是es6中的方法”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注創新互聯行業資訊頻道。
文章題目:eval是不是es6中的方法
文章路徑:http://vcdvsql.cn/article48/pepsep.html
成都網站建設公司_創新互聯,為您提供品牌網站制作、網站收錄、Google、網站排名、建站公司、微信小程序
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯