如何在警报中显示console.log输出

时间:2019-04-19 17:07:03

标签: javascript console alert

如果我创建一个对象并使用console.log,它将扩展该对象,并且可以看到对象属性。如果我使用警报,则不会。有什么办法可以在警报中执行相同的操作?

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

    console.log(car); 
  

输出:对象{车轮:4,制造商:“ honda”,所有者:“ me”}

alert(car)
  

输出是[object Object]

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

4 个答案:

答案 0 :(得分:2)

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

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

  1. 在JavaScript中,建议不要使用new Object()来创建对象:

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

  1. 在创建变量时始终使用varletconst。如果不这样做,那么它们将在全局范围内创建。在浏览器中,您将在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, '----'));

答案 1 :(得分:1)

您可以使用此alert(JSON.stringify(object))

答案 2 :(得分:1)

在控制台日志方法中,该参数被视为对象。因此,对象可以是任何形式,例如数组,字符串,整数等,我们将获取内容。但是在alert方法中,它仅接受字符串。因此,如果您发送对象,它将把它转换为对象的字符串版本(object Object)。如果对对象进行字符串化并将其作为参数发送到alert方法,它将显示内容。试试这个,

window.alert(JSON.stringify(object));

答案 3 :(得分:-1)

好吧,因为它更难以使用且更复杂,因此我只需要在button标记中使用document.query选择器来显示动画以显示console.log()输出,就让我发疯了,但我通常会这样做方式