JavaScript eval()函数定义及使用方法详解


Posted in Javascript onJuly 07, 2020

定义和用法

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 相关文章推荐
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
Oct 11 Javascript
javascript 3d 逐侦产品展示(核心精简)
Mar 26 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
Mar 04 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
Apr 03 Javascript
基于jQuery实现页面搜索功能
Mar 26 Javascript
AngularJS基础 ng-list 指令详解及示例代码
Aug 02 Javascript
javascript滚轮控制模拟滚动条
Oct 19 Javascript
jQuery编写网页版2048小游戏
Jan 06 Javascript
微信小程序收藏功能的实现代码
Jun 12 Javascript
ajax与jsonp的区别及用法
Oct 16 Javascript
JS实现获取当前所在周的周六、周日示例分析
May 11 Javascript
jQuery实现获取多选框的值示例
Feb 07 jQuery
详解React 元素渲染
Jul 07 #Javascript
JS数据类型判断的几种常用方法
Jul 07 #Javascript
JavaScript实现像雪花一样的Hexaflake分形
Jul 07 #Javascript
jQuery 实现扁平式小清新导航
Jul 07 #jQuery
vue@cli3项目模板怎么使用public目录下的静态文件
Jul 07 #Javascript
JS实现移动端可折叠导航菜单(现代都市风)
Jul 07 #Javascript
React+EggJs实现断点续传的示例代码
Jul 07 #Javascript
You might like
利用PHP实现与ASP Banner组件相似的类
2006/10/09 PHP
DedeCms模板安装/制作概述
2007/03/11 PHP
php接口与接口引用的深入解析
2013/08/09 PHP
php中stream(流)的用法
2014/03/25 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
微信开发之php表单微信中自动提交两次问题解决办法
2017/01/08 PHP
php 常用的系统函数
2017/02/07 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
Laravel框架定时任务2种实现方式示例
2018/12/08 PHP
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
jquery 跳到顶部和底部动画2句代码简单实现
2013/07/18 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
2015/11/18 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
python下载文件记录黑名单的实现代码
2017/10/24 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
Python面向对象程序设计之私有属性及私有方法示例
2019/04/08 Python
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
KIEHL’S科颜氏官方旗舰店:源自美国的顶级护肤品牌
2018/06/07 全球购物
美国椅子和沙发制造商:La-Z-Boy
2020/10/25 全球购物
系统管理员的职责包括那些?管理的对象是什么?
2013/01/18 面试题
软件配置管理有什么好处
2015/04/15 面试题
材料成型专业个人求职信范文
2013/09/25 职场文书
元旦红领巾广播稿
2014/02/19 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
淮海战役观后感
2015/06/11 职场文书
总结Python变量的相关知识
2021/06/28 Python
适合后台管理系统开发的12个前端框架(小结)
2021/06/29 Javascript
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS