热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jquery的eval,jquery?

jqueryeval是干什么的简单来说就是执行js语句,只不过这里的js语句是一个字符串,一个可以任意拼接的字符串,但前提是这个字符串是可执行的,例如:function(){var

jquery eval是干什么的

简单来说就是执行js语句,只不过这里的js语句是一个字符串,一个可以任意拼接的字符串,但前提是这个字符串是可执行的,例如:

function(){

var data;

eval("data="+"12");

//相当于"data=12",这里是为了说明"12"这个值可以是另一个变量,

//而这个变量的值的来历则是你定的。

alert(data);

}

当上面这个函数执行的时候,页面会弹出12的字样,这说明,写在eval中的字符串被当做一个赋值语句执行了。

jquery如何让页面刷新的时候默认执行一次点击事件?

如果需要在页面刷新的时候默认执行一次点击事件,可以参考下面的方法实现:

1、使用原生js实现

使用原生js主要用到了window.onload方法:

onload 事件会在页面或图像加载完成后立即发生。

语法:Onload="SomeJavascriptCode"

参数SomeJavascriptCode是必须的规定该事件发生时执行的 Javascript。

实现代码:

script

window.onload = function() {

    requestFullScreen();//直接执行onclick中的函数就行

}

/script

将代码放到body标签最下面即可。

2、使用Jquery实现

使用jquery实现该效果主要用到了jquery.ready(fn)和jquery.trigger()方法:

jquery.ready(fn):当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。

jquery.trigger(type,[data]):在每一个匹配的元素上触发某类事件。

实现代码:

$(function() {

    $("#sdsd").trigger("click");//触发button的click事件

});

Javascript中eval的用法

Javascript eval() 函数

Javascript 全局对象

定义和用法:

eval() 函数可计算某个字符串,并执行其中的的 Javascript 代码。

语法:

eval(string)

返回值:

通过计算 string 得到的值(如果有的话)。

说明:

该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数。

如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性,并通过该属性调用它,则 ECMAScript 实现允许抛出一个 EvalError 异常。

抛出:

如果参数中没有合法的表达式和语句,则抛出 SyntaxError 异常。

如果非法调用 eval(),则抛出 EvalError 异常。

如果传递给 eval() 的 Javascript 代码生成了一个异常,eval() 将把该异常传递给调用者。

扩展资料:

调用eval函数的三种情况:

1、直接调用

直接调用时,eval函数相关的执行环境属性ThisBinding,LexicalEnvironment,VariableEnvironment的值如下:

a) ThisBinding是调用eval函数时,调用方执行环境的ThisBinding

b) LexicalEnvironment是调用eval函数时,调用方执行环境的LexicalEnvironment

c) VariableEnvironemnt是调用eval函数时,调用方执行环境的VariableEnvironment

2、间接调用

所谓间接调用,即将eval赋值给另一个变量后在调用

3、严格模式下的eval

在严格模式下,eval的LexicalEnvironment,VariableEnvironment指向属于eval自己的Lexcial Environment,而不是调用方的Lexical Environment,但是ThisBinding还是调用方的ThisBinding。

同时,在严格模式下如果eval直接调用,那么eval的Lexical Environment的outer指针指向调用方的Lexical Environment,否则,如果是间接调用,那么eval的Lexical Environment的outer指针指向全局环境的Lexical Environment。

参考资料来源:百度百科--eval()

js中eval和$parseJSON的区别和联系以及JSON.stringify

js中eval()和$.parseJSON()的区别以及JSON.stringify()

1.第一个区别是:安全性

json格式非常受欢迎,而解析json的方式通常用JSON.parse()但是eval()方法也可以解析,这两者之间有什么区别呢?

JSON.parse()之可以解析json格式的数据,并且会对要解析的字符串进行格式检查,如果格式不正确则不进行解析,而eval()则可以解析任何字符串,eval是不安全的

如:

[Javascript] view plain copy

var str = 'alert(1000.toString())';

eval(str);

JSON.parse(str);

用eval可以解析,并且会弹出对话框,而用JSON.parse()则解析不了。 其实alert并没有什么坏处,可怕的是如果用恶意用户在json字符串中注入了向页面插入木马链接的脚本,用eval也是可以操作的,而用JSON.parse()则不必担心这个问题。

注意:某些低级的浏览器尚不支持JSON.parse()

《高性能Javascript》一书即指出:警告:关于JSON和eval需要注意的是:在代码中使用eval是很危险的,特别是用它执行第三方的JSON数据(其中可能包含恶意代码)时,尽可能使用JSON.parse()方法解析字符串本身。该方法可以捕捉JSON中的语法错误,并允许你传入一个函数,用来过滤或转换解析结果。如果此方法以备Firfox 3.5 、IE8 及 Safari 4 原生支持。大多数Javascript类库包含的JSON解析代码会直接调用原生版本,如果没有原生支持的话,会调用一个略微不那么强大的非原生版本来处理。

2.第二个区别:JSON.parse()解析的必须是json格式的字符串要不报错,而eval()则没有这么严格

在这里“json格式的字符串”是指要求指定的字符串必须符合严格的JSON格式,例如:属性名称必须加双引号、字符串值也必须用双引号。

如果传入一个格式不"完好"的JSON字符串将抛出一个JS异常

json的解析方法共有两种:eval 和 JSON.parse(),如:

[Javascript] view plain copy

var jsOnStr= '{"name":"lulu", "sex":"female"}';

var evalJson=eval('('+jsonStr+')');

var jsOnParseJson=JSON.parse(jsonStr);

这样就把json格式的字符串jsonStr转换成了JSON对象。

但是区别是:

[Javascript] view plain copy

var age = 27;

var jsOnStr= '{"name":"lulu", "sex":"female","age":++age}';

var evalJson=eval('('+jsonStr+')'); //不报错此时age的值是28

var jsOnParseJson=JSON.parse(jsonStr);//报错

从上面eval()函数的用法我们可以看出eval()函数在解析json格式的字符串时要加上圆括号如eval('('+jsonStr+')'),这是因为:

eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。

加上圆括号的目的是迫使eval函数在处理Javascript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为Javascript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。

JSON.stringify()

JSON.stringify()是把json数据转化成json格式的字符串如:

[Javascript] view plain copy

var jsOnObj= {"name":"lulu","sex":"female"};

var jsOnStr= JSON.stringify(jsonObj);

结果是:

'{"name":"lulu", "sex":"female"}'

jquery语言,用eval函数处理过的数据,var dataObj=eval("("+data+")");用firebug老是显示这个错误

贴出来你的data内容,很可能就是你的json格式有问题。。。

要保证data是字符串,如果已经是json数组了,你干嘛还要eval。。


推荐阅读
  • 本文总结了JavaScript的核心知识点和实用技巧,涵盖了变量声明、DOM操作、事件处理等重要方面。例如,通过`event.srcElement`获取触发事件的元素,并使用`alert`显示其HTML结构;利用`innerText`和`innerHTML`属性分别设置和获取文本内容及HTML内容。此外,还介绍了如何在表单中动态生成和操作``元素,以便更好地处理用户输入。这些技巧对于提升前端开发效率和代码质量具有重要意义。 ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 如何撰写适应变化的高效代码:策略与实践
    编写高质量且适应变化的代码是每位程序员的追求。优质代码的关键在于其可维护性和可扩展性。本文将从面向对象编程的角度出发,探讨实现这一目标的具体策略与实践方法,帮助开发者提升代码效率和灵活性。 ... [详细]
  • 在 Linux 环境下,多线程编程是实现高效并发处理的重要技术。本文通过具体的实战案例,详细分析了多线程编程的关键技术和常见问题。文章首先介绍了多线程的基本概念和创建方法,然后通过实例代码展示了如何使用 pthreads 库进行线程同步和通信。此外,还探讨了多线程程序中的性能优化技巧和调试方法,为开发者提供了宝贵的实践经验。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 本文探讨了如何利用 jQuery 的 JSONP 技术实现跨域调用外部 Web 服务。通过详细解析 JSONP 的工作原理及其在 jQuery 中的应用,本文提供了实用的代码示例和最佳实践,帮助开发者解决跨域请求中的常见问题。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 本文详细介绍了Java反射机制的基本概念、获取Class对象的方法、反射的主要功能及其在实际开发中的应用。通过具体示例,帮助读者更好地理解和使用Java反射。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • 本地存储组件实现对IE低版本浏览器的兼容性支持 ... [详细]
author-avatar
手机用户2502925683
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有