javascript中eval和with用法实例总结_javascript技巧

javascript中eval和with用法实例总结_javascript技巧

ID:30779921

大小:68.50 KB

页数:5页

时间:2019-01-03

javascript中eval和with用法实例总结_javascript技巧_第1页
javascript中eval和with用法实例总结_javascript技巧_第2页
javascript中eval和with用法实例总结_javascript技巧_第3页
javascript中eval和with用法实例总结_javascript技巧_第4页
javascript中eval和with用法实例总结_javascript技巧_第5页
资源描述:

《javascript中eval和with用法实例总结_javascript技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、javascript中eval和with用法实例总结本文实例讲述了javascript中eval和with用法。分享给大家供大家参考,具体如下:我们都知道javascript的作用域机制,但是with和eval冇时会“破坏”我们对于作用域的常规理解。下面参考网上资源和自己理解总结一下eval和with的用法。一、eval1、eval函数:把一个字符串当作一个js表达式一•样去执彳亍它.2、语法:eval(strScript)注:参数strScript是必填项3、使用说明(1)它是有返回值的,如果参数字符串是一个表达式,就会返回表达式的值

2、。如果参数字符串不是表达式,没有值,那么返冋“undefined”。(2)参数字符串作为代码执行时,是和调用oval函数的上下文相关的,即其小出现的变量或函数调用必须在调用eval的上下文环境中可用。4、示例:function$(s){if(document.getElementByTd){returneval(Jdocument.gctElcmcntByld(,z,+s+'〃)');}else{rcturneval(Jdocument,all.J+s);}}//eval,这个比较常用varmyTest=function(){retur

3、n,zevaltest";};functionevalTest(){〃简单数据alert(eval("1+1"));//2alert(eval(〃‘a,+1"));//alalert(eval(〃l+‘a'“));//laalert(eval(^parselnt('a'+1)“));//NaNalert(eval(z,parselnt(1+'a)〃));//Ialert(eval(,ztruc,/));//truealert(eval("0二二false"));//truealert(eval(〃1二二undefinecT));//fa

4、lsealert(eval(,zisNaN(undefined)〃));//true〃函数和对象alert(eval(/zthisz,));//[object]alert(eval(z,typeof(this),z));//objectalert(eval(,ztypeof(test),z));//undefinedalert(eval(,/evalTest,/));//这个显示当前函数的定义语句细节,包含注释//alert(eval("evalTest()〃));//调用自己并执行,这个会有大问题啊!alert(eval(,ztypc

5、of(cvalTcst)z,));//function〃其他vartmpFunc=,z{a:1};alert(eval(tmpFunc));//Ialert(evalCC+tmpFunc+〃)〃));//[objectobject]alert(eval("tmpFunc"));//{a:1}//alert(evaltmpFunc()“));//脚本错误alert(myTest());eval("alert(myTest())“);//和上面等价alert(eval(myTest));alert(eval("myTest"));//和上面

6、等价//form里的一个input,id=txtUscrNamceval(〃$('txtUserName,).value二'jeffwong,;“);//等价于$(,txtUserName,).value=,jeffwong,;eval(,zalert($(,txtUserName,).value);〃);}cvalTcst();5、eval和作用域(1)经典代码分析a、常见varstr="global";functiontest(){alert(str);//undefinedvarstr="local";}test();alert(

7、str);//global分析:如我们预期的那样,得到指定值。test函数内的str没有var和有var声明,结果也是不一样的,读者可口行验证。b、eval替代直接声明变量的写法varstr="global";functiontest(){alert(str);//??eval(〃varstr二'local';〃);〃会像我们预期的那样吗?//varstr="loceil";alert(str);//这里又是什么结果?}test();alert(str);//??分析:对比a屮的写法,我们只是在test函数里用eval语句替换直接声明v

8、ar定义变量那一句最后alert一下而已,结果岀入很大。(2)eval定义全局代码a、兼容ie和ff的通用定义全局代码的eval函数varnav=newObject();//通用eval函数nav.Eval

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。