首页 > 其他分享 >JS输出为[object object] 如何解决以及原因

JS输出为[object object] 如何解决以及原因

时间:2024-09-23 09:25:57浏览次数:1  
标签:输出 Object 对象 res object JS toString 字符串

参考文档:https://blog.csdn.net/weixin_48141487/article/details/121758541

 

问题描述
项目中,欲在控制台输出变量res(自定义对象)查看数据,代码为:

console.log('res:' + res);
但控制台显示结果为res: [object Object],并非想要查看的数据。

最基本的要求是先去掉+号,试试看

问题原因
1. 加号的作用

首先,我们的代码中有+(加号)运算符,它在这种情况下(字符串 + 其它什么东西),会调用toString()方法,将其它类型的东西转化为字符串,再和原始字符串拼接成一个字符串;

2. toString()从哪里来,干了什么?

以下摘自MDN:

除了null和undefined之外,其他的类型(数值、布尔、字符串、对象)都有toString()方法,它返回相应值的字符串表现(并不修改原变量)。
每个对象都有一个toString()方法。
当该对象被表示为一个文本值时,或者一个对象以预期的字符串方式引用时自动调用。
默认情况下,toString()方法被每个Object对象继承。如果此方法在自定义对象中未被覆盖,toString()返回 "[object type]",其中type是对象的类型。

而在上述项目中,res正是我们自定义的对象,所以res.toString()的结果为[object Object],所以console.log('res:' + res)的结果为res: [object Object]。

解决方法
去掉字符串‘res’,直接输出对象res
代码改写如下:
console.log(JSON.stringify(user))
Tips:一些补充

(1).toString()      // "1"
 
[1,2].toString()    // "1, 2"
 
({}).toString()     // [object Object]
 
true.toString()     // "true"
 
null.toString()     // Uncaught TypeError: Cannot read property 'toString' of null
 
undefined.toString()  // Uncaught TypeError: Cannot read property 'toString' of null
  • 第3行,不能直接写成{}.toString()是因为:{}会被当成代码块而不是空对象

标签:输出,Object,对象,res,object,JS,toString,字符串
From: https://www.cnblogs.com/y593216/p/18426355

相关文章

  • Js中获取鼠标中的某一个点的位置以及getBoundingClientRect
    getBoundingClientRect() 是一个用于获取元素位置和尺寸信息的方法。它返回一个DOMRect对象,其提供了元素的大小及其相对于视口的位置,其中包含了以下属性: x:元素左边界相对于视口的x坐标。y:元素上边界相对于视口的y坐标。width:元素的宽度。height:元素的高度。top:元素......
  • JS中的for...in和for...of有什么区别?
    你好,我是沐爸,欢迎点赞、收藏、评论和关注。在JavaScript中,for...in和for...of是两种用于遍历数组(或其他可迭代对象)的循环语句,但它们之间存在显著的差异。一、遍历数组for…inconstarr=['apple','banana','cherry']for(constindexinarr){console.l......
  • 【接口自动化测试】jsonpath应用:提取数据、断言、接口关联
    安装命令pipinstalljsonpath表达式importjsonpathres=jsonpath.jsonpath(obj,expr)1、返回结果要么是list,要么是False2、obj 要提取的对象,应为字典类型。报文的格式是json,必须进行数据的转换, 用json.loads()将json转换成字典类型   expr jsonpath表......
  • 面试-JS异步进阶
    面试题:......
  • 视野修炼-技术周刊第102期 | js 编译运行C
    欢迎来到第102期的【视野修炼-技术周刊】,下面是本期的精选内容简介......
  • Express、Koa、Egg.js:Node.js框架的对比与选择
    摘要:本文将对比分析Express、Koa、Egg.js这三个Node.js框架的特点、优势和应用场景,帮助读者根据实际需求选择最适合的框架。引言:在现代Web开发中,Node.js框架是不可或缺的工具。Express、Koa、Egg.js是三种流行的Node.js框架,它们各自具有独特的特点和优势。本文将详细对比分析这三......
  • WPF Unable to cast object of type 'System.Windows.Controls.SelectedItemCollectio
    SelectedItemsconverttoIListasbelowfailed;IList<Book>collection2=(IList<Book>)obj; System.InvalidCastExceptionHResult=0x80004002Message=Unabletocastobjectoftype'System.Windows.Controls.SelectedItemCollection'......
  • fastjson反序列化漏洞
    fastjson将java中的类和json相互转化的一个工具.简单使用javabean类转jsonpublicclassFastjsonTest{publicstaticvoidmain(String[]args){Useruser=newUser();Stringjson=JSON.toJSONString(user);System.out.println(json);......
  • How to get the exact duration of an audio file in js All In One
    HowtogettheexactdurationofanaudiofileinjsAllInOneerrorsaudiodurationtimeprecisebugtime误差bug❌Reducedtimeprecision/时间精度降低Toofferprotectionagainsttimingattacksandfingerprinting,theprecisionofvideo.currentTim......
  • js逆向实战之烯牛数据请求参数加密和返回数据解密
    声明:本篇文章仅用于知识分享实战网址:https://www.xiniudata.com/industry/newest?from=data请求参数加密访问网址,往下翻翻,可以看到触发了如下的数据包,请求参数进行了加密。全局搜索list_industries_by_sort地址,有四处,都位于同一个文件中。随便点一个看看,可以看到有payload......