Function 和 eval 知识点总结】的更多相关文章

1 Function 1.1 函数的创建方式 1 函数声明 2 函数表达式 3 new Function // 1 function foo() {} // 2 var foo = function() {}; 结论:函数也是对象 1.2 任意函数都是Function的实例 通过 new Function,得出:函数也是对象 instanceof 再解释 console.log(Array instanceof Function); function PersON() {} console.lo…
new Function与eval可以动态执行JS,只要把拼接好的JS方法,然后以字符串的形式传入到这两个函数,可以执行,其中new Function用在模板引擎比较多. 用 Function 类直接创建函数的语法如下: var function_name = new function(arg1, arg2, ..., argN, function_body) 在上面的形式中,每个 arg 都是一个参数,最后一个参数是函数主体(要执行的代码).这些参数必须是字符串. 比如: function c…
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>团体交通意外险-国内旅游保险-中国平安官方直销网站</title> <link rel="stylesheet" href="http://pcss1.4008000000.com/app_css/4008000000/v…
eval和new Function都可以动态解析和执行字符串.但是它们对解析内容的运行环境判定不同. eval中的代码执行时的作用域为当前作用域.它可以访问到函数中的局部变量. new Function中的代码执行时的作用域为全局作用域,不论它的在哪个地方调用的.所以它访问的是全局变量a.它根本无法访问b函数内的局部变量. 下面这个例子可以说明了: var a = 'global scope' function b(){ var a = 'local scope' eval('console.l…
eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法“{}”并不能返回一个值,需要用括号括起来才会返回值,简单示例如下: 复制代码 代码如下:var code1='"a" + 2'; //表达式 varcode2='{a:2}'; //语句 alert(eval(code1)); //->'a2' alert(eval(code2)); //->unde…
以eval(function(p,a,c,k,e,r){e=function(c)开头的js文件是经过加密的 使用下面方法可以对js文件进行加密.解密 步骤:1.新建html页面,内容如下列代码 2.把加密的代码粘进[原脚本]文本域,点击[解密]按钮: 3.把需要加密的原代码粘进[原脚本]文本域,点击[加密]按钮: HTML代码如下: <script> a=62; function encode() { var code = document.getElementById('code').va…
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta h…
原文:浅谈 js eval作用域 就简单聊下如何全局 eval 一个代码. var x = 1; (function () { eval('var x = 123;'); })(); console.log(x); 这个代码得到的是 1 而不是 123如果想让 eval 执行的代码是全局的,那么有几种方法. var x = 1; (function () { window.eval('var x = 123;'); })(); console.log(x); 这个方法标准浏览器都可以得到 123…
David Flanagan最近写了一个关于全局eval的简单表达式,可以用一行式子表示: var geval = this.execScript || eval; 尽管看起来很简短,但是跨浏览器的兼容性并不好.仔细考虑了下这个话题,我觉得还有一些方法来实现代码的全局执行.而且有些方法--间接eval--并不为人所熟知,而且它们的内涵也不容易让人们所接受,本文主要介绍下该技术. 为了可以更清晰的讲解间接eval,我打算先回顾”全局eval“的方法,并回顾它们是如果起作用的,我也会提到刚刚的单行实…
首先我们来看五段代码: 第一段代码: function test(){ eval('var a = 1;'); alert(a); } test(); 第二段代码: function test(){ eval('var a = 1;'); } test(); alert(a); 第三段代码: function test(){ eval('a = 1;'); } test(); alert(a); 第四段代码: function test(){ window.eval('var a = 1;');…