javascript:void(0)
void是一元运算符,它出现在操作数之前,操作数可以是任意类型,操作数会照常计算,但忽略计算结果并返回undefined。由于void会忽略操作数的值,因此在操作数具有副作用的时候使用void来让程序更具语义
console.log(void 0); // undefined console.log(void(0)); // undefined
常见的作用:
替代undefined
由于undefined并不是一个关键字,其在IE8-浏览器中会被重写,在高版本函数作用域中也会被重写;所以可以用void 0 来替换undefined
var undefined = 10; console.log(undefined);//IE8-浏览器下为10,高版本浏览器下为undefined function test(){ var undefined = 10; console.log(undefined); } console.log(test());//所有浏览器下都是10
javascript:void(0) 中最关键的是 void 关键字, void 是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值。
以下实例中参数 a 将返回 undefined :
var a,b,c; a = void ( b = 5, c = 7 ); console.log('a = ' + a + ' b = ' + b +' c = ' + c ); //a = undefined b = 5 c = 7
href="#"与href="javascript:void(0)"的区别
# 包含了一个位置信息,默认的锚是#top 也就是网页的上端。
而javascript:void(0), 仅仅表示一个死链接。
在页面很长的时候会使用 # 来定位页面的具体位置,格式为:# + id。
如果你要定义一个死链接请使用 javascript:void(0) 。
<a href="javascript:void(0);">点我没有反应的!</a> <a href="#pos">点我定位到指定位置!</a> <br> ... <br> <p id="pos">尾部定位点</p>
typeof 1; //'number' typeof (1);//'number' typeof (); //SyntaxError 语法错误 void 0; //undefined void (0);//undefined void (); //SyntaxError 语法错误
void()仅仅是代表不返回任何值,但是括号内的表达式还是要运行!!!