欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript eval()函數(shù)定義及使用方法詳解

 更新時間:2020年07月07日 16:16:29   作者:Haidnor  
這篇文章主要介紹了JavaScript eval()函數(shù)定義及使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

定義和用法

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

語法

eval(string)

返回值

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

說明

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

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

拋出

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

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

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

舉例

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

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

eval()函數(shù)非常強大,我認為它在一定程度上體現(xiàn)出了javaScript這種動態(tài)語言的優(yōu)點。

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

比如我正在開發(fā)一個動態(tài)表格的小系統(tǒng),后臺程序?qū)⒈碇械乃凶侄?,以及所有?shù)據(jù)傳遞給前端,前端javaScript代碼接收到數(shù)據(jù)以后,根據(jù)字段自動生成表格。但我正在用第三方(layui)js框架,框架里渲染表格的代碼必須是固定寫好的,不符合動態(tài)生成需求,這個時候,可以使用eval()函數(shù)。

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

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

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

比如以下偽代碼

<script>
  var code1 = "layui.use('table', function(){var table = layui.table;table.render({elem: '#demo',height: 312,url: '/demo/table/user/',page: true,cols: [[{"
  // ...這里根據(jù)接收到的表各個字段信息自動拼接代碼,形成字符串 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: '職業(yè)', width: 80},{field: 'wealth', title: '財富', width: 135, sort: false"
  var code3 = "}]]});});"
  var code = code1 + code2 + code3
  eval(code)
</script>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論