Roy*_*mir 3 html javascript void
阅读后:
"void 0"和"undefined"之间的区别,https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/void
我还有一些问题.
我已经读过
window.undefined 可以覆盖vwhere void运算符将返回未定义的值always
但引起我注意的例子是MDN中的那个:
<a href="javascript:void(0);">Click here to do nothing</a>
Run Code Online (Sandbox Code Playgroud)
为了什么都不做,我一直以为我应该写:
href="javascript:return false;"
Run Code Online (Sandbox Code Playgroud)
这引出了另一个问题:(在Href上下文中!):
javascript:void(0); VS javascript:return false;
有什么区别?
还 - 是的
function doWork() {
return void( 0 );
}
Run Code Online (Sandbox Code Playgroud)
是正好
function doWork() {
return undefined;
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
这将无法正常工作:
href="javascript:return false;"
Run Code Online (Sandbox Code Playgroud)
因为你没有参加比赛.你在想这个:
onclick="return false;"
Run Code Online (Sandbox Code Playgroud)
这是正确的,因为它return false;被放置在一个函数中.该false值告诉onclick阻止元素的默认行为.
要使return语句在href属性中起作用,您需要一个完整的函数.
href="javascript:(function() { return false; })();"
Run Code Online (Sandbox Code Playgroud)
但这只是漫长而丑陋的,并且正如评论所指出的那样,href通常不鼓励使用JavaScript .
编辑: 我刚刚学到了一些东西.undefined如上所示具有非表达式似乎用返回值替换元素(至少在Firefox中).我并不完全熟悉使用JavaScript的完整后果href,因为我从来没有这样做过.
是的,这个:
return undefined;
Run Code Online (Sandbox Code Playgroud)
返回完全相同的东西:
return void 0;
Run Code Online (Sandbox Code Playgroud)
只要该undefined变量未被某个其他值重新定义或遮蔽.
但是虽然他们可能会返回相同的东西,但说它们是同一个东西并不完全准确,因为:
undefined是一个全局变量,其默认值是undefined基元
void是一个一元运算符将与替换它的操作数的返回值undefined原始
所以他们都导致了undefined原始,但他们以一种非常不同的方式这样做.
| 归档时间: |
|
| 查看次数: |
667 次 |
| 最近记录: |