📜  如何为可能为空的对象执行 ToString? - Javascript(1)

📅  最后修改于: 2023-12-03 15:08:13.067000             🧑  作者: Mango

如何为可能为空的对象执行 ToString?- Javascript

在 Javascript 中,我们经常需要把一个对象转换为字符串,通常可以使用 toString() 方法来完成这个操作。但是如果这个对象是 null 或者 undefined,那么调用 toString() 方法就会抛出异常。这时候该怎么办呢?

方案一:使用短路表达式
const obj = null;
const str = obj && obj.toString();
console.log(str); // 输出 null

我们可以使用短路表达式来判断对象是否为 null 或者 undefined,如果是,则不进行 toString() 方法的调用,避免抛出异常。

方案二:使用空合运算符
const obj = null;
const str = obj?.toString?.();
console.log(str); // 输出 null

在 ECMAScript 2020 中,新增了一个 ?. 运算符,也叫空合运算符(Nullish Coalescing Operator)。如果对象存在 toString() 方法,则调用它,否则返回 undefined

方案三:重写 Object.prototype.toString 方法
Object.prototype.toString = function() {
  return this ? "[object " + this.constructor.name + "]" : "";
};

const obj = null;
const str = obj.toString();
console.log(str); // 输出 [object Null]

我们也可以重写 Object.prototype.toString() 方法,这样即使对象为 null 或者 undefined,也可以调用该方法返回预期的字符串。

以上就是为可能为空的对象执行 toString() 方法的三种方案。根据实际情况选择最合适的方法,避免抛出异常和错误。