溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于JavaScript中eval()函數的用法

發布時間:2020-07-08 09:52:13 來源:億速云 閱讀:233 作者:清晨 欄目:開發技術

小編給大家分享一下關于JavaScript中eval()函數的用法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

定義和用法

eval() 函數可計算某個字符串,并執行其中的的 JavaScript 代碼。

語法

eval(string)

返回值

通過計算 string 得到的值(如果有的話)。

說明

該方法只接受原始字符串作為參數,如果 string 參數不是原始字符串,那么該方法將不作任何改變地返回。因此請不要為 eval() 函數傳遞 String 對象來作為參數。

如果試圖覆蓋 eval 屬性或把 eval() 方法賦予另一個屬性,并通過該屬性調用它,則 ECMAScript 實現允許拋出一個 EvalError 異常。

拋出

如果參數中沒有合法的表達式和語句,則拋出 SyntaxError 異常。

如果非法調用 eval(),則拋出 EvalError 異常。

如果傳遞給 eval() 的 Javascript 代碼生成了一個異常,eval() 將把該異常傳遞給調用者。

舉例

以下代碼可以將"alert('Hello world')"字符串作為參數,轉化成javaScprit代碼進行執行,瀏覽器彈出提示框輸出'Hello world'

<script type="text/javascript">
  var a = "alert('Hello world')"
  eval(a)
</script>

eval()函數非常強大,我認為它在一定程度上體現出了javaScript這種動態語言的優點。

用這個函數,開發者可以在不改變第三方前端javaScript庫源碼的基礎上,增加功能,或者修改功能,使得程序變得更為靈活。

比如我正在開發一個動態表格的小系統,后臺程序將表中的所有字段,以及所有數據傳遞給前端,前端javaScript代碼接收到數據以后,根據字段自動生成表格。但我正在用第三方(layui)js框架,框架里渲染表格的代碼必須是固定寫好的,不符合動態生成需求,這個時候,可以使用eval()函數。

下面簡單看一下layui框架表格部分的使用說明

關于JavaScript中eval()函數的用法

表頭部分需要在javaScript代碼中固定對應寫好,接收到指定數據接口的數據再生成表格。

如果每次需要的表格的字段都不同,列數都不一樣。那么就可用eval()函數拼接代碼實現了。大致實現思路是,ajax請求到表頭的相關數據,javaScript代碼根據這些數據自動生成符合框架要求的代碼語句,然后傳遞到eval()函數中直接調用就可以了。非常的靈活與方便。

比如以下偽代碼

<script>
  var code1 = "layui.use('table', function(){var table = layui.table;table.render({elem: '#demo',height: 312,url: '/demo/table/user/',page: true,cols: [[{"
  // ...這里根據接收到的表各個字段信息自動拼接代碼,形成字符串 code2
  var code2 = "field: 'id', title: 'ID', width:80, sort: true, fixed: 'left'},{field: 'username', title: '用戶名', width:80},{field: 'sex', title: '性別', width:80, sort: true},{field: 'city', title: '城市', width:80},{field: 'sign', title: '簽名', width: 80},{field: 'experience', title: '積分', width: 80, sort: true},{field: 'score', title: '評分', width: 80, sort: true},{field: 'classify', title: '職業', width: 80},{field: 'wealth', title: '財富', width: 135, sort: false"
  var code3 = "}]]});});"
  var code = code1 + code2 + code3
  eval(code)
</script>

看完了這篇文章,相信你對關于JavaScript中eval()函數的用法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女