我們給定了一個字串,需要將其轉換為 JavaScript 中的函數。有時,我們得到字串形式的數學或函數表達式,執行該表達式需要將字串轉換為函數表達式。在本教程中,我們將學習將給定字串轉換為函數或數學表達式的不同方法。
eval() 方法將表達式作為參數並對表達式求值。例如,如果我們將「2 2」字串作為 eval() 方法的參數傳遞,則在計算數學表達式 2 2 時,它會傳回 4。
它也像數學表達式一樣計算函數表達式。
使用者可以按照下面的語法使用 eval() 方法將字串轉換為 JavaScript 中的函數。
eval("var func = () => { output.innerHTML = 'Hello Users!'; }";); func();
在上面的語法中,我們將函數字串作為 eval() 方法的參數傳遞。
在下面的範例中,我們建立了包含函數表達式的字串。函數表達式在網頁上列印訊息。
之後,我們將字串作為 eval() 方法的參數傳遞,然後我們就像呼叫普通函數一樣執行了 func() 函數。
func() 函數提供與普通函數相同的輸出。
<html> <body> <h2>Using the <i> eval() </i> method to convert a string into the function expression in JavaScript. </h2> <div id = "output"> </div> </body> <script> let output = document.getElementById('output'); let funcStr = "var func = () => { output.innerHTML = 'Hello Users!';}"; eval(funcStr); func(); </script> </html>
在下面的例子中,我們建立了對象,對象的 getHeight 屬性包含字串格式的函數
我們使用 eval() 方法來計算 getHeight 屬性的字串值,並將函數字串轉換為表達式後再次將其儲存在 getHeight 屬性中。
之後,我們執行了 getHeight() 函數,該函數傳回我們儲存在 height 變數中的高度。
<html> <body> <h2>Using the <i> eval() </i> method to convert a string into the function expression in JavaScript. </h2> <div id = "output"> </div> </body> <script> let output = document.getElementById('output'); let object = { name: "Shubham", "getHeight": "function func() { return '6 Feet';}", age: 22, } object.getHeight = eval("(" + object.getHeight + ")"); let height = object.getHeight(); output.innerHTML += "The height is " + height + "<br/>"; </script> </html>
Function() 建構子允許我們從字串建立一個函數。 Function() 建構子可以帶 N 個參數。 Function constructor()的前N-1個參數作為要建立的函數的參數,第N個參數為函數表達式
使用者可以依照下列語法使用 Function() 建構子從字串建立函數。
let func = new Function(expression);
在上述語法中,func 是使用 Function() 建構子建立的。表達式是包含函數表達式的字串。
在下面的範例中,我們建立了表達式字串。我們也在表達式字串中使用 eval() 方法評估數學表達式。
之後,我們像普通函數一樣呼叫 func() 函數,使用者可以觀察輸出
<html> <body> <h2>Using the <i> Function() </i> constructor to convert a string into the function expression in JavaScript. </h2> <div id = "output"> </div> </body> <script> let output = document.getElementById('output'); let expression = "output.innerHTML += 'The value of 10 + 10 is ' + eval(10 + 10);"; let func = new Function(expression); func(); </script> </html>
在下面的範例中,我們已將多個參數傳遞給 Function() 建構子。前三個參數用作作為第四個參數傳遞的函數表達式的參數。
我們列印函數表達式中的參數值。在輸出中,使用者可以看到它列印了參數的預設值,因為我們在呼叫 concatString() 函數時沒有傳遞任何參數。
<html> <body> <h2>Using the <i> Function() </i> constructor to convert a string into the function expression in JavaScript. </h2> <div id = "output"> </div> </body> <script> let output = document.getElementById('output'); let expression = "output.innerHTML += 'The value of param1 + param2 + param3 is ' + param1 + param2 + param3;"; let concatString = new Function("param1 = 'Welcome '", "param2 = 'To the '", "param3 = ' TutorialsPoint!'", expression); concatString(); </script> </html>
在本教程中,我們學習了使用兩種不同的方法將字串轉換為函數表達式。在第一種方法中,我們使用了 eval() 方法,我們可以使用它來計算 JavaScript 中的任何表達式。
在第二種方法中,我們使用了 Function 建構函數,它將函數參數和函數表達式作為參數來建立一個新函數。
以上是如何在 JavaScript 中將字串轉換為函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!