首页 > 解决方案 > 如何在警报中显示 console.log 输出

问题描述

如果我创建一个对象并使用 console.log 它将展开该对象并且我可以看到对象属性。如果我使用警报它不会。有没有办法在警报中做同样的事情?

    car=new Object();
    car.wheels=4;
    car.make="honda";
    car.owner="me"

    console.log(car); 

输出:对象{车轮:4,品牌:“本田”,所有者:“我”}

alert(car)

输出是[对象对象]

如何获得相同的警报输出?

标签: javascriptconsolealert

解决方案


正如其他人所说,您使用JSON.stringify.

但我想给出其他一些建议。我不知道您是否已经知道这些,但是您的示例表明您可能会喜欢这些提示。

  1. 在 JavaScript 中,建议不要使用,new Object()而是只创建您的对象:

var car = {
  wheels: 4,
  make: "honda",
  owner: "me"
}

  1. 始终使用var,letconst在创建变量时。如果您不这样做,那么它们将在全局范围内创建。在浏览器中,您将在window对象上创建新变量。

  2. JSON.stringify还有其他参数:

JSON.stringify(value[, replacer[, space]])

不经常使用replacer,但它可以提供一种过滤和防止递归数据的方法。

space参数可以是 0 到 10 的数字或字符串中从 0 到 10 的字符数。这表示输出中每个级别的缩进量。

function replacer(key, value) {
  if (typeof value === 'string') {
    return undefined;
  }
  return value;
}

var foo = {
  company: 'Sony',
  model: 'Playstation',
  version: 4, 
  pricing: [
    {
      pro: false,
      price: 299.00
    },
    {
      pro: true,
      price: 399.00
    }
  ],
  comments: 'none'
};
alert(JSON.stringify(foo, replacer, 2));
alert(JSON.stringify(foo, replacer, '----'));


推荐阅读