认识 void 运算符

void 运算符 对给定的表达式进行求值,然后返回 undefined。

void有如下作用:

1. 通过采用void 0取undefined比采用字面上的undefined更靠谱更安全,应该优先采用void 0这种方式。

因为undefined在javascript中不是保留字。可以在一个函数上下文内以undefined做为变量名,于是在这个上下文写的代码便只能通过从全局作用域来取到undefined。

function test() {
    var undefined = "hello world";
    console.log(undefined); //hello world
    console.log(window.undefined); //undefined
};
test();
console.log(undefined); //undefined

2. 填充 < a > 的href确保点击时不会产生页面跳转;填充的src,确保不会向服务器发出垃圾请求。

当用户点击一个以 javascript: URI 时,它会评估URI中的代码,然后用返回的值替换页面内容,除非返回的值是undefined。void运算符可用于返回undefined。

<a href="javascript:void(0);">
  这个链接点击之后不会做任何事情,如果去掉 void(),
  点击之后整个页面会被替换成一个字符 0。
</a>

3. void后面跟一个表达式,void操作符会立即执行后面的表达式,并且统一返回undefined。

在使用立即执行的函数表达式时,可以利用 void 运算符让 JavaScript 引擎把一个function关键字识别成函数表达式而不是函数声明(语句)。

void function iife() {
    var bar = function () {};
    var baz = function () {};
    var foo = function () {
        bar();
        baz();
     };
    var biz = function () {};

    foo();
    biz();
}();

参考地址:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/void

https://segmentfault.com/a/1190000000474941

https://segmentfault.com/q/1010000005740703

posted @ 2018-01-31 14:42  MiyaMiya  阅读(351)  评论(0编辑  收藏  举报