• void 0 与 undefined


    偶然看到一个问题:为什么有的编程规范要求用 void 0 代替 undefined?

    如果不知道这个答案的小伙伴,第一反应就要问void 0是什么鬼?

    void 0

    void是JavaScript的一个操作符,而void 0会返回undefined,实验出真知,可以在浏览器试验一下

    console.log(void 0) // undefined
    console.log(void 0 === undefined) // true

    可以看出,void 0跟undefined是一样的,所以用void 0 代替undefined是完全可行的。但是为什么呢?

    why

    大家可以去MDN上了解一下undefined的定义:undefined是全局对象的一个属性,也就是说,它是全局作用域中的一个变量,undefined的最初值就是原始数据类型undefined。

    注: ES5之后的标准中,规定了全局变量下的undefined值为只读,不可改写的,但是局部变量中依然可以对之进行改写。

    function changeUndefined () {
        var undefined = 1;
        console.log(undefined);
    }
    changeUndefined(); // 1

    而void 0无论什么时候都是返回undefined,这样来看,使用void 0来代替undefined就比较稳妥,不会出错。

  • 相关阅读:
    触发器
    新登录用户的次日成功的留存率
    获取薪水第二多的
    找到薪水比经理高的员工
    成绩排名
    exists 和 in
    sum+case 计数
    前N个员工的salary累计和
    员工的薪水按照salary进行按照1N的排名,相同salary并列
    洛谷2678 跳石头
  • 原文地址:https://www.cnblogs.com/qiuxiaozhen/p/10497486.html
Copyright © 2020-2023  润新知