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 相关文章推荐
javascript编程起步(第七课)
Feb 27 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
Jan 09 Javascript
Jquery中getJSON在asp.net中的使用说明
Mar 10 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
Feb 16 Javascript
举例讲解如何判断JavaScript中对象的类型
Apr 22 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
Mar 06 Javascript
javascript 缓冲运动框架的实现
Sep 29 Javascript
vue+swiper实现组件化开发的实例代码
Oct 26 Javascript
如何在 JavaScript 中更好地利用数组
Sep 27 Javascript
jQuery实现高级检索功能
May 28 jQuery
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
Sep 16 Javascript
html实现随机点名器的示例代码
Apr 02 Javascript
详解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者的疑难问答(2)
2006/10/09 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
2011/06/13 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
PHP 实现链式操作
2021/03/09 PHP
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
2017/03/01 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
vue省市区三联动下拉选择组件的实现
2017/04/28 Javascript
node中Express 动态设置端口的方法
2017/08/04 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
Vue路由 重定向和别名的区别说明
2020/09/09 Javascript
关于ES6尾调用优化的使用
2020/09/11 Javascript
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
python3实现表白神器
2019/04/09 Python
python实现支付宝转账接口
2019/05/07 Python
简单了解如何封装自己的Python包
2020/07/08 Python
HTML5实现页面切换激活的PageVisibility API使用初探
2016/05/13 HTML / CSS
canvas离屏技术与放大镜实现代码示例
2018/08/31 HTML / CSS
美国高端医师级美容产品电商:BeautifiedYou.com
2017/04/17 全球购物
采购部岗位职责
2013/11/24 职场文书
汽车制造与装配专业自荐信范文
2014/01/02 职场文书
写给女生的道歉信
2014/01/14 职场文书
认识深刻的检讨书
2014/02/16 职场文书
公司年会搞笑主持词
2014/03/24 职场文书
学校评语大全
2014/05/06 职场文书
2015年“七七卢沟桥事变”纪念活动总结
2015/03/24 职场文书
爱国主题班会教案
2015/08/14 职场文书
2016入党积极分子党课学习心得体会
2015/10/09 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书