字符串转函数执行
将字符串转换为函数执行的方式有以下几种方法:
- eval(): 使用eval()函数可以直接执行字符串中的 JavaScript 代码。例如:
eval('function myFunction() { console.log("Hello, world!"); }');
myFunction();
- Function 构造函数:使用 Function 构造函数可以创建一个新的函数,并将字符串作为函数体。例如:
const myFunction = new Function('console.log("Hello, world!");');
myFunction();
- setTimeout(): 使用 setTimeout() 函数可以将字符串作为代码延迟执行。例如:
const codeString = 'console.log("Hello, world!");';
// 延迟执行代码
setTimeout(codeString);
4.
<!DOCTYPE html>
<html>
<head>
<title>动态加载JavaScript示例</title>
</head>
<body>
<button onclick="loadScript()">点击加载脚本</button>
<script>
function loadScript() {
// 创建一个 <script> 元素
const script = document.createElement('script');
// 设置要加载的 JavaScript 代码
const jsCode = `
function sayHello() {
alert('Hello, world!');
}
sayHello();
`;
// 将 JavaScript 代码添加到 <script> 元素中
script.innerHTML = jsCode;
// 将 <script> 元素添加到 <body> 中
document.body.appendChild(script);
}
</script>
</body>
</html>
以上这些方法都可以将字符串转换为可执行的函数,实现相同的功能。但需要注意,在使用 eval() 函数时要格外小心,因为它会执行任意的 JavaScript 代码,可能存在安全风险。因此,建议谨慎使用 eval(),并确保字符串的来源可信。