zoukankan      html  css  js  c++  java
  • Void运算符 与 undefined类型

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

    何为求值,就是执行之后的表达式。

    我们最常见的就是

    <a href="javascript: void(0)"></a> //这段代码使点击这个a标签什么都不做

    为什么呢?

    重点在于,不管表达式是什么,它返回的始终都是一个undefined。

    顺序也很重要,先计算表达式,然后再返回。

    怎么用?

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

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

    普通立即执行的函数表达式都这样(function fn(){})(),这样引擎就会解析为一个表达式。
    不使用()括起来的时候,引擎会将其解析为函数表达式,但是通过一个void运算符就可以避免这个问题。因为void 运算符后面本来就是一个表达式。

    2、判断时用作undefined的替身
    之前a标签的例子就是这样使用的。
    比如我们判断一个变量是不是undefined的时候

    options === void 0

    为什么要使用void 0来替换,不直接使用undefined来作判断?

    1、因为undefined在全局变量中是一个属性,本是只读属性,但是在低版本IE的局部作用域中是可以被重新被赋值的。因为这里不安全所以使用void 来替换。
    2、使用void来替换的时候,void后面必须要跟一个表达式,其实任意表达式都是可以的。既然都能满足,我们只是想得到一个稳定的undefined,那为什么不用最简短的表达式呢,void 0就应运而生了。有些地方也写作void(0);

    ---------------------
    作者:w211
    来源:CSDN
    原文:https://blog.csdn.net/mpdemp/article/details/70810640

  • 相关阅读:
    过滤器解决乱码问题
    读取配置文件javase
    Django
    python之路
    最火的前端框架--Vue
    web前端
    MySQL笔记
    python 从想学到坚持
    python 坚持下来会更好
    简单的装系统大佬别喷谢谢拉 欢迎指出不足指出
  • 原文地址:https://www.cnblogs.com/momo798/p/9845570.html
Copyright © 2011-2022 走看看