`
zccst
  • 浏览: 3293442 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js-基础知识-eval

 
阅读更多
作者:zccst

2014-10-23

eval()
如果传入的参数不是字符串,则直接返回这个参数。
如果是字符串,他会把字符串当js代码进行编译,如果编译失败,则抛出错误,如果成功,则开始执行这段代码,并返回字符串中最后一个表达式或语句的值,如果没值,则返回undefined。
如果字符串抛出异常,这个异常将把该调用传递给eval()


//eval的作用域
//eval使用了调用它的变量作用域环境。

1,如果一个函数定义了一个局部变量,然后调用eval("x"),它会返回局部变量的值。当然它会改变局部变量的值,增加新的局部变量等。

2,如果在全局调用,则改变全局变量的值。
var geval = eval;
var x = "global", y = "global";
function f(){
    var x = "local";
    eval("x += 'changed';");
    return x;
}

function g(){
    var y = "local";
    geval("y += 'changed';");//是一个全局函数,虽然在g()内执行。所以y是全局的y
    return y;
}

console.log(f(), x);//localchanged local
console.log(g(), y);//local globalchanged


缺点:如果在eval起了别名,则优化是个问题。









1,实时求和

var idNumStr = $("#final_failPart_ids").val();
var idNumArr = idNumStr.split(';');
var param = "";
for(var i = 0; i < idNumArr.length; i++){
    var subArr = idNumArr[i].split(',');
    var id  = subArr[0];
    var num = subArr[1];
 
    var ok  = $("#ok_num_"+id).val();
    var bad = $("#bad_num_"+id).val();
    var more = $("#more_"+id).val();
                             
    var tmpNum = eval(ok) + eval(bad);
    alert("ok="+ok+" bad="+bad+" num="+num+" tmpNum="+tmpNum+" more="+more);
                             
     if(num == tmpNum){
              param += id + ',' + ok + ',' + bad + ',' + more + ";";
      }else{
              alert("您填写的配件数量与报修时的数量不一致!");
              return false;
      }
}
分享到:
评论

相关推荐

    oh-my-js:JavaScript 文档

    JavaScript 参考手册What is this此文档为本人复习 JavaScript 基础知识时所整理,文档内容来自以下网站以及个人的理解:除去学习每个 API 的使用之外,还尽量考虑「不用eval的前提下用JS实现一次JS」。Contributing...

    Knowledge-Map:知识图

    前端知识地图原生JS名词与基础概念基础概念javascript是单线程语言在浏览器中,一个页面只有一个线程执行JS代码。 javascript是异步执行的,通过事件循环(Event Loop)的方式实现代码解析十分Swift,不会发生解析...

    leetcode分类-blog::cookie:我的博客

    JavaScript基础知识 声明 内置类型 typeof 的使用 数据类型转换 转义字符 运算符 调用堆栈 全局执行上下文 函数执行上下文 eval执行上下文 执行上下文栈和变量对象 变量提升 函数提升 分配内存 使用内存(读写) 释放...

    XML的代替者—-JSON

    我个人觉得PHP与Javascript各有长处,如果能完美的结合起来,那将创造出许许多多的奇迹! 我是初次写此类文章,Bug难免,请各位指正~ ... 首先我们来了解一下Javascript的基础知识。 1.创建数组,可以用JS内建的

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料;本资料仅用于学习。 【课程内容】 第1周 开课介绍 python发展介绍 第一个python程序 变量 字符编码与二进制 字符编码的区别与介绍 用户交互程序 if ...

    十天学会ASP.net--我认为ASP.NET比ASP难很多,希望大家做好准备

    虽然说学习ASP.NET不需要任何ASP基础,但是我觉得如果大家ASP不会,还是先看一下【十天学会ASP教程】,大家所需要了解的不是ASP的程序怎么写,而是怎么构建服务器,怎么使用HTML表单,同时对SQL语句有一个基础和理解...

    Tcl_TK编程权威指南pdf

    place的基础知识 面板管理器 place命令 第26章 将命令与事件编联 bind命令 bindtags命令 事件的语法 修饰符 事件序列 虚拟事件 事件关键词 第4部分 tk组件 第27章 按钮与菜单 按钮命令与作用域问题 ...

    电子书:MongoDB权威指南(中文版)

    1078.1.2 配置文件 1098.1.3 停止MongoDB 1108.2 监控 1108.2.1 使用管理接口 1108.2.2 serverStatus 1128.2.3 mongostat 1138.2.4 第三方插件 1138.3 安全和认证 1148.3.1 认证的基础知识 1148.3...

    亮剑.NET深入体验与实战精要2

    3.3.2 Bind和Eval的区别 140 3.4 ASP.NET编程中的技巧 142 3.4.1 页面之间传值的7种方法 142 3.4.2 get与post方法的区别 146 3.4.3 ASP.NET服务器控件和 HTML控件的区别 146 3.4.4 Server.Transfer和Response....

    亮剑.NET深入体验与实战精要3

    3.3.2 Bind和Eval的区别 140 3.4 ASP.NET编程中的技巧 142 3.4.1 页面之间传值的7种方法 142 3.4.2 get与post方法的区别 146 3.4.3 ASP.NET服务器控件和 HTML控件的区别 146 3.4.4 Server.Transfer和Response....

    PHP和MySQL WEB开发(第4版)

    4.6.1 基础知识 4.6.2 字符集和类 4.6.3 重复 4.6.4 子表达式 4.6.5 子表达式计数 4.6.6 定位到字符串的开始或末尾 4.6.7 分支 4.6.8 匹配特殊字符 4.6.9 特殊字符一览 4.6.10 在智能表单中应用 4.7 用正则表达式...

    PHP和MySQL Web开发第4版pdf以及源码

    4.6.1 基础知识 4.6.2 字符集和类 4.6.3 重复 4.6.4 子表达式 4.6.5 子表达式计数 4.6.6 定位到字符串的开始或末尾 4.6.7 分支 4.6.8 匹配特殊字符 4.6.9 特殊字符一览 4.6.10 在智能表单中应用 4.7 用...

    PHP和MySQL Web开发第4版

    4.6.1 基础知识 4.6.2 字符集和类 4.6.3 重复 4.6.4 子表达式 4.6.5 子表达式计数 4.6.6 定位到字符串的开始或末尾 4.6.7 分支 4.6.8 匹配特殊字符 4.6.9 特殊字符一览 4.6.10 在智能表单中应用 4.7 用...

Global site tag (gtag.js) - Google Analytics