返回

JavaScript 判空设默认值:就是这么简单!

前端

JavaScript中的空值处理:5种常见方法

在编程世界中,变量是我们的好伙伴,它们可以帮助我们存储各种各样的数据。然而,有时我们可能会遇到一些奇奇怪怪的情况,比如变量的值可能为空。那么,当我们面对空值时,该怎么办呢?

不用担心,JavaScript 早就为我们准备好了多种方法来处理这种情况。让我们来一一了解一下吧!

1. 或运算符:简单粗暴

或运算符(||)是 JavaScript 中最简单的判空方法。它的语法如下:

result = input || defaultValue;

这个表达式的意思是,如果 input 为假值(包括 null、undefined、0、空字符串等),则将 defaultValue 赋值给 result,否则将 input 赋值给 result。

代码示例:

const input = null;
const defaultValue = "默认值";
const result = input || defaultValue;

console.log(result); // 输出:"默认值"

2. 空判断:一目了然

空判断(??)是 JavaScript 中另一个常用的判空方法。它的语法如下:

result = input ?? defaultValue;

这个表达式的意思是,如果 input 为假值,则将 defaultValue 赋值给 result,否则将 input 赋值给 result。

代码示例:

const input = null;
const defaultValue = "默认值";
const result = input ?? defaultValue;

console.log(result); // 输出:"默认值"

3. 类型判断:严谨可靠

类型判断是 JavaScript 中一种更严谨的判空方法。它的语法如下:

if (typeof input === 'undefined' || input === null) {
  result = defaultValue;
} else {
  result = input;
}

这个表达式的意思是,如果 input 为 undefined 或 null,则将 defaultValue 赋值给 result,否则将 input 赋值给 result。

代码示例:

const input = null;
const defaultValue = "默认值";

if (typeof input === 'undefined' || input === null) {
  result = defaultValue;
} else {
  result = input;
}

console.log(result); // 输出:"默认值"

4. 空字符串判断:一劳永逸

有时候,我们需要对空字符串进行特殊处理。这时,我们可以使用如下代码:

if (input === '') {
  result = defaultValue;
} else {
  result = input;
}

这个表达式的意思是,如果 input 为空字符串,则将 defaultValue 赋值给 result,否则将 input 赋值给 result。

代码示例:

const input = "";
const defaultValue = "默认值";

if (input === '') {
  result = defaultValue;
} else {
  result = input;
}

console.log(result); // 输出:"默认值"

5. NaN 判断:防止意外

在处理数字时,我们可能会遇到 NaN(非数字)的情况。这时,我们可以使用如下代码:

if (isNaN(input)) {
  result = defaultValue;
} else {
  result = input;
}

这个表达式的意思是,如果 input 为 NaN,则将 defaultValue 赋值给 result,否则将 input 赋值给 result。

代码示例:

const input = NaN;
const defaultValue = "默认值";

if (isNaN(input)) {
  result = defaultValue;
} else {
  result = input;
}

console.log(result); // 输出:"默认值"

结语

JavaScript 提供了多种方法来处理空值,我们可以根据不同的情况选择合适的方法。希望这篇文章对你有帮助,欢迎留言讨论!

常见问题解答

1. 如何判断变量是否为 null 或 undefined?

可以使用类型判断的方法:

if (typeof input === 'undefined' || input === null) {
  // ...
}

2. 如何将空值转换成其他值?

可以使用或运算符或空判断:

const result = input || defaultValue; // 或运算符
const result = input ?? defaultValue; // 空判断

3. 如何处理空字符串?

可以使用如下代码:

if (input === '') {
  // ...
}

4. 如何防止 NaN 出现?

可以使用 isNaN() 方法:

if (isNaN(input)) {
  // ...
}

5. 如何选择合适的方法来处理空值?

具体选择哪种方法取决于实际情况。例如,如果我们只想对 undefined 或 null 进行处理,可以使用类型判断。如果我们想将空值转换成其他值,可以使用或运算符或空判断。