JavaScript相关,这是什么情况

问题相关代码,请勿粘贴截图
var a = Object();
      //等价于var a = {}
      var b = new Object();
      //等价于var b = {}
      var c = Object({name : 'c'});
      //将参数实例化
      a.name = 'a';
      b.name = 'b';
      //将参数对象转换为字符串
      document.write('<pre>a: ', JSON.stringify(a, null, ' '), '</pre>');
      document.write('<pre>b: ', JSON.stringify(b, null), '</pre>');
      document.write('<pre>c: ', JSON.stringify(c, ''), '</pre>');

运行结果及报错内容

img

我想要达到的结果

为什么加了null,空格以及pre标签后才会分行,不加这三就不会分行,这是为什么

document.write写入的是html文本,你JSON.stringify(a, null, ' ')是将对象格式化为字符串然后写到页面上,没有用html标签进行包含,html渲染时是当做文本进行渲染的,

标签:https://www.runoob.com/tags/tag-pre.html,你用div、p、br>等都能实现同样的效果,不是js问题,是组合后的html问题。
以下代码能实现同样效果:

              var a = Object();
              //等价于var a = {}
              var b = new Object();
              //等价于var b = {}
              var c = Object({name : 'c'});
              //将参数实例化
              a.name = 'a';
              b.name = 'b';
              //将参数对象转换为字符串
              document.write('br换行:');
              document.write('a: '+ JSON.stringify(a)+"<br/>");
              document.write('b: '+ JSON.stringify(b)+"<br/>");
              document.write('c: '+ JSON.stringify(c)+"<br/>");
              //将参数对象转换为字符串
              document.write('p块级元素:');
              document.write('<p>a: '+ JSON.stringify(a)+"</p>");
              document.write('<p>b: '+ JSON.stringify(b)+"</p>");
              document.write('<p>c: '+ JSON.stringify(c)+"</p>");
              //将参数对象转换为字符串
              document.write('div块级元素:');
              document.write('<div>a: '+ JSON.stringify(a)+"</div>");
              document.write('<div>b: '+ JSON.stringify(b)+"</div>");
              document.write('<div>c: '+ JSON.stringify(c)+"</div>");

结果:

img

你好,导致你打印出来是这个的原因是因为你数据没有做处理,你可以尝试用一下JSON.stringify()方法,有问题滴滴我

加null没啥作用,主要为了加第三个参数空格,这时json内容会换行,但是如果显示在body中是不会换行的,此时需要加pre标签,被包围在 pre 元素中的文本会保留空格和换行符