JS eval()函数的一些见解
一、eval是基本使用规则
- 1 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
- 2 eval(string)
- 3 string必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。
- 4 eval()只有一个参数。
- 5 eval使用比较不安全,忘慎重使用
二、eval的错误使用方法
- 1 如果传入的参数不是字符串,它直接返回这个函数。
- 2 如果参数是字符串,它会把字符串当成JavaScript代码进行编译,如果编译失败者抛出一个语法错误异常。
- 3 如果编译成功,则开始执行这一段代码,并返回字符串中的最后一个表达式或语句的值,
- 4 如果最后一个表达式或语句没有值,则最终返回undefined。
三、使用例子
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>eval</title>
</head>
<body> <script type="text/javascript"> //正确输入
var x = 10;
document.write(eval(10*x + 10)) //表达式 输出110
document.write("<br />");
document.write(eval("10 == x")); //表达式 输出true
document.write("<br />");
eval(document.write(2+5*x)); //执行语句 输出52 //非正常输入
try{
var y = 8;
//表达式
document.write(eval("9+6*x"+"100")); //如果参数中没有合法的表达式和语句,则抛出 SyntaxError 异常。
document.write("<br />");
eval('++++2'); //编译失败ReferenceError异常
eval(document.write(2+2)); //编译成功
document.write(eval()); //返回undefined var my = eval(); //如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性,
document.write(my(1+2)); //并通过该属性调用它,则 ECMAScript 实现允许抛出一个 EvalError 异常。 } catch(exception) {
alert(exception);
} </script> </body>
</html>
我自己查了好多资料,也还很模糊,希望了解的大神能指点指点!
JS eval()函数的一些见解的更多相关文章
- JS eval()函数
js eval()函数 这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它. 举个小例子: //执行表达式 var the_unevaled_answer = & ...
- js eval()函数 接收一个字符串,做为js代码来执行。 如: s='var d="kaka"'; 或者s=‘function (code){return code }’;
eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法“{}”并不能返回一个值, ...
- js eval函数写一个简单的计算器
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- js的eval函数解析后台返回的json数据时为什加上圆括号eval("("+data+")"),而HTML页面定义的数据不用
一,情况如下,这是成功代码: $(function () { $.ajax({ url: "Demo.aspx", type: "post", data: { ...
- js模版引擎开发实战以及对eval函数的改进
简介 前段时间,想着自己写一个简单的模版引擎,便于自己平时开发demo时使用,同时也算是之前学习的知识的一种总结吧! 首先我们先了解一下模版引擎的工作原理吧! 1. 模版引擎其实就是将指定标签的内容根 ...
- 用Java开发一个工具类,提供似于js中eval函数功能的eval方法
今天在看到<Java疯狂讲义>中一个章节习题: 开发一个工具类,该工具类提供一个eval()方法,实现JavaScript中eval()函数的功能--可以动态运行一行或多行程序代码.例如: ...
- JS的eval函数解密反混淆
https://www.hhtjim.com/js-decryption-de-obfuscate-eval-function.html JS的eval函数解密反混淆
- js中的eval函数另一种实现
js中有一个函数eval可以一段文本改为js代码,本来使用eval也可以达到目的,但自己看了不少资料都不推荐使用eval函数,于是自己就在思考有没有不使用eval的方法? 其实需求很简单,就是把一个 ...
- Java 实现 JS的eval函数
JS的eval 函数, 给个表达式做参数, 返回表达式的值. Java的脚本引擎可以实现这个功能. 例子: 拼接一个字符串 \uxxxx, Unicode的十六进制编码, 然后把它打印出来. 即输 ...
随机推荐
- MongoDB备份(mongodump)和恢复(mongorestore)
MongoDB提供了备份和恢复的功能,分别是MongoDB下载目录下的mongodump.exe和mongorestore.exe文件 1.备份数据使用下面的命令: >mongodump -h ...
- (整理)MyBatis入门教程(一)
本文转载: http://www.cnblogs.com/hellokitty1/p/5216025.html#3591383 本人文笔不行,根据上面博客内容引导,自己整理了一些东西 首先给大家推荐几 ...
- BZOJ 1391: [Ceoi2008]order [最小割]
1391: [Ceoi2008]order Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1509 Solved: 460[Submit][Statu ...
- 分享MSSQL、MySql、Oracle的大数据批量导入方法及编程手法细节
1:MSSQL SQL语法篇: BULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | vie ...
- MVC5在Mono上的各种坑
买了Macbook后,各种事情的纠缠,都没好好地用过OSX系统. 果断的装上了xcode和mono,还有monodevelop. 然后把项目移植到mono上运行,各种问题. 然后第一个问题来了 权限不 ...
- Unity3D新手引导开发手记
最近开始接手新手引导的开发,记录下这块相关的心得 首先客户端是Unity,在接手前,前面的同学已经初步完成了新手引导框架的搭建,这套框架比较简单,有优点也有缺点,稍后一一点评 我们的新手引导是由一个个 ...
- Entity Framework 6 Recipes 2nd Edition(11-2)译 -> 用”模型定义”函数过滤实体集
11-2. 用”模型定义”函数过滤实体集 问题 想要创建一个”模型定义”函数来过滤一个实体集 解决方案 假设我们已有一个客户(Customer)和票据Invoice)模型,如Figure 11-2所示 ...
- python基础操作以及hdfs操作
目录 前言 基础操作 hdfs操作 总结 一.前言 作为一个全栈工程师,必须要熟练掌握各种语言...HelloWorld.最近就被"逼着"走向了python开发之路, ...
- Hibernate(4)——主键生成策略、CRUD 基础API区别的总结 和 注解的使用
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: hibernate的主键生成策略 UUID 配置的补充:hbm2ddl.auto属性用法 注解还是配置文件 h ...
- 【Data Cluster】真机环境下MySQL数据库集群搭建
真机环境下MySQL-Cluster搭建文档 摘要:本年伊始阶段,由于实验室对不同数据库性能测试需求,才出现MySQL集群搭建.购置主机,交换机,双绞线等一系列准备工作就绪,也就开始集群搭建.起初笔 ...