扫码关注官方订阅号
为什么js中{}+{}的长度为30,但是{}的长度没有?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
在js里+号这个运算符用于字符串相连接 比如
var a = 'hello' var b = ' world' a + b + '!' // hello world!
或数值相加
1 + 2 // 3
如果数值和字符串相加,会将数值隐式转换为字符串类型
1 + '2' // 12
对于两个数组相加,会将数组隐式转换为type类型
typeof {} // object
a = {} + {} 的结果为
'[object Object][object Object]'
a为字符串,字符串长度为30,因此a.length = 30
{}是一个对象, 对象没有length方法。{}+{}是一个字符串。, 字符串有length方法。{}+{}变为[object Object][object Object]的原理是js是弱类型, 隐性转换了数据类型。
{}
{}+{}
[object Object][object Object]
{}+{}时执行了字符串拼接,自动调用了对象的toString()方法转换为字符串。
toString()
typeof a "string" a "[object Object][object Object]"
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
在js里+号这个运算符用于字符串相连接 比如
或数值相加
如果数值和字符串相加,会将数值隐式转换为字符串类型
对于两个数组相加,会将数组隐式转换为type类型
a = {} + {} 的结果为
a为字符串,字符串长度为30,因此a.length = 30
{}是一个对象, 对象没有length方法。{}+{}是一个字符串。, 字符串有length方法。{}+{}变为[object Object][object Object]的原理是js是弱类型, 隐性转换了数据类型。{}+{}时执行了字符串拼接,自动调用了对象的toString()方法转换为字符串。