小元
博客
详情文字在这里缓缓展开
静候你翻开这一页

动态执行JS

在js中如何把一个字符串当成js运行,即动态执行js

动态执行JS


   实现方案:

       一:eval

       二:setTimeout

       三:Script标签

       四:Function

   

   效果演示:

   1718531087755.gif


   eval:

       eval:eval是一个全局的内置函数,接收一个字符串,并将其作为一个JavaScript来执行。

       执行顺序:同步执行

       作用域:局部,当在全局和局部同时存在相同变量名时,访问的是局部的变量

       使用方法:

eval("1+1/2");

       演示代码:

<body>
	<textarea placeholder="请输入" id="formula"></textarea>
	<div class="val" id="val">运行结果:</div>
	<button onclick="computedValue()">计算</button>
</body>

<script>
	const valElement = document.getElementById("val");
	const formulaElement = document.getElementById("formula");

	function computedValue () {
		if (!formulaElement.value) return;
		valElement.innerText = `运行结果:${eval(formulaElement.value)}`
	}
</script>


   setTimeout:

       setTimeout:它是一个定时器,同时接收两个参数,第一个参数可以是函数也可以是字符串,如果第一个参数内容为string则会被eval当JavaScript执行,第二个参数是延迟时间,单位毫秒。

       执行顺序:异步

       作用域:全局

       使用方法:

setTimeout("alert('1')", 0)

   

   Script标签:

       script:用于在 HTML 文档中嵌入 JavaScript 代码

       执行顺序:同步

       作用域:全局

       使用方法:

const scriptNode = document.createElement("script");
scriptNode.innerHTML = "alert('蛤')";
document.body.appendChild(scriptNode);


   Function:

       function:函数是一种可重复使用的代码块,用于执行特定的任务等。

       执行顺序:同步

       作用域:全局

       使用方法:

const fn = new Function("alert('蛤')");
fn();


   以上便是动态执行JS的方法,如果您有不同见解或是内容有舞蹈,欢迎在下方评论区留言讨论。

渝ICP备2024031078号-1
本网站一切内容不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
如无意中侵犯了企业或个人的知识产权等,请及时通过电子邮件(1102905617@qq.com)告知我,本网站将会给予删除。
最新公告
😊访客你好,很高兴你的到来,本博客仍在建设中,还有些许功能尚在开发中,最后祝你在此能有所收获。
💥小元博客第三代自2025年9月上线以来,2026/08/09日迎来了它的第三次更新本次更新内容如下:
1. 文章详情页样式变更,由原来的弹窗改为单独的页面。
2. 使用Nuxt对项目进行了SEO优化,优化了搜索引擎的抓取和索引。
3. 对验签进行了优化,降低了请求被误触发拦截的概率。
4. 移动端也正在稳步推进中,在不久的将来会与大家见面。
5. 修复了首页黄历节日不显示的问题,以及其它bug的修复。