当前位置:  开发笔记 > 编程语言 > 正文

为什么这个js代码有效?

如何解决《为什么这个js代码有效?》经验,为你挑选了1个好方法。

Web浏览器中的JavaScript搜索窗口对象中的属性.访问未知属性不会引发错误,因此实际上它被评估为如下所示:

if( !window.wysiwyg_toolbarButtons ) { }

尝试if( !wtf ) { alert('error'); }if( !window.wtf ) { alert('no error'); }在Firebug控制台中.

编辑

目前,firebug中的控制台使用了代码with( window ) { ..console..code.. }.但是"with"语句很棘手,例如:

>>> alert(location);
= eval( "with( window ) { alert(location); }" );
OK, "location" attribute found in window

>>> alert(wtf);
= eval( "with( window ) { alert(wtf); }" );
ERROR, "wtf" not found in window, and not in global scope, throws ReferenceError

浏览器中的隐式窗口对象的行为与"with"语句使用的行为不同.



1> Frunsi..:

Web浏览器中的JavaScript搜索窗口对象中的属性.访问未知属性不会引发错误,因此实际上它被评估为如下所示:

if( !window.wysiwyg_toolbarButtons ) { }

尝试if( !wtf ) { alert('error'); }if( !window.wtf ) { alert('no error'); }在Firebug控制台中.

编辑

目前,firebug中的控制台使用了代码with( window ) { ..console..code.. }.但是"with"语句很棘手,例如:

>>> alert(location);
= eval( "with( window ) { alert(location); }" );
OK, "location" attribute found in window

>>> alert(wtf);
= eval( "with( window ) { alert(wtf); }" );
ERROR, "wtf" not found in window, and not in global scope, throws ReferenceError

浏览器中的隐式窗口对象的行为与"with"语句使用的行为不同.


"bug"是因为Firebug执行包含在_with_语句中的输入:`with(window} {..console..code ..}`.另请参阅http://stackoverflow.com/questions/61552/are-there -legitimate用途换JavaScript的 - 与语句
推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有