JavaScript中undefined的正确打开方式详解

 更新时间:2025年07月09日 08:22:59   作者:烛阴  
undefined 是 Undefined 类型的唯一值,它表示未定义的值,当声明变量未赋值时,或者定义属性未设置值时,默认值都为 undefined,本文给大家解锁略热avaScript 中 undefined 的正确打开方式,需要的朋友可以参考下

一、 理解 void 0

1.1 什么是 void 运算符?

void 是 JavaScript 中的一个运算符,它接受一个表达式作为操作数,总是返回 undefined,无论操作数是什么。

console.log(void 0);      // undefined
console.log(void 1);      // undefined
console.log(void "hello"); // undefined
console.log(void {});     // undefined

1.2 为什么使用 void 0 而不是 undefined?

在 ES5 之前,undefined 不是保留字,可以被重写:

// 在ES3环境中可能出现的危险情况
var undefined = "oops";
console.log(undefined); // "oops" 而不是预期的 undefined

void 0 则始终可靠地返回真正的 undefined 值:

var undefined = "oops";
console.log(void 0); // undefined (不受影响)

1.3 现代 JavaScript 还需要 void 0 吗?

ES5 及以后版本中,undefined 是不可写、不可配置的全局属性:

// 现代浏览器中
undefined = "oops";
console.log(undefined); // undefined (不会被修改)

二、void 0 的实用场景

2.1 最小化场景:减少代码体积

void 0undefined 更短,在需要极致压缩代码时很有用:

// 原始代码
function foo(param) {
  if (param === undefined) {
    param = 'default';
  }
}

// 压缩后(使用 void 0)
function foo(n){if(n===void 0)n="default"}

2.2 立即执行函数表达式 (IIFE)

传统 IIFE 写法:

(function() {
  // 代码
})();

使用 void 的 IIFE:

void function() {
  // 代码
}();

2.3 箭头函数中避免返回值

当需要箭头函数不返回任何值时:

let func =  () => {
  return new Promise((resolve, reject) => {
    setTimeout(resolve(5));
  })
};
// 会返回 func 的 Promise
const logData = func();

// 明确不返回值
const logData = void func();

三、常见的 void 0 误区

3.1 与 undefined和null的严格比较

console.log(void 0 === undefined); // true
console.log(void 0 === null);     // false

3.2 与 void 其他表达式

let count = 0;
void ++count;
console.log(count); // 1 (表达式仍会执行)

总结

到此这篇关于JavaScript中undefined的正确使用方式详解的文章就介绍到这了,更多相关JavaScript undefined使用方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 小程序中设置缓存过期的实现方法

    小程序中设置缓存过期的实现方法

    这篇文章主要介绍了小程序中设置缓存过期的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • JS实现闭包中的沙箱模式示例

    JS实现闭包中的沙箱模式示例

    这篇文章主要介绍了JS实现闭包中的沙箱模式,结合实例形式分析了闭包模块化实现沙箱模式的原理、步骤与相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • javascript获取ckeditor编辑器的值(实现代码)

    javascript获取ckeditor编辑器的值(实现代码)

    这篇文章主要介绍了javascript获取ckeditor编辑器的值,用于表单验证。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • js为数字添加逗号并格式化数字的代码

    js为数字添加逗号并格式化数字的代码

    数字添加逗号的方法有很多,在本将为大家介绍下使用js来实现,具体如下,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-08-08
  • 详解JS中的compose函数和pipe函数用法

    详解JS中的compose函数和pipe函数用法

    这篇文章主要介绍了JS中的compose函数和pipe函数用法,想深入了解Javascript的同学,可以参考下
    2021-04-04
  • js鼠标单击和双击事件冲突问题的快速解决方法

    js鼠标单击和双击事件冲突问题的快速解决方法

    下面小编就为大家带来一篇js鼠标单击和双击事件冲突问题的快速解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • JavaScript日期格式化技巧分享

    JavaScript日期格式化技巧分享

    在 JavaScript 中,日期和时间的处理与格式化是非常常见的需求,JavaScript 提供了内置的 Date 对象用于操作日期和时间,但它的格式化功能较为有限,为了更方便地格式化日期,通常需要结合一些额外的工具或库,本文涵盖了从基础到进阶的日期格式化技巧
    2024-10-10
  • js 获取、清空input type="file"的值(示例代码)

    js 获取、清空input type="file"的值(示例代码)

    本篇文章主要介绍了js 获取、清空input type="file"的值(示例代码) 需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • JS实现canvas简单小画板功能

    JS实现canvas简单小画板功能

    这篇文章主要为大家详细介绍了JS实现canvas简单小画板功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • JavaScript控制图片加载完成后调用回调函数的方法

    JavaScript控制图片加载完成后调用回调函数的方法

    这篇文章主要介绍了JavaScript控制图片加载完成后调用回调函数的方法,实例分析了javascript回调函数的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03

最新评论