javascript - 为什么js中{}+{}的长度为30,但是{}的长度没有?
高洛峰
高洛峰 2017-04-11 11:50:23
[JavaScript讨论组]

为什么js中{}+{}的长度为30,但是{}的长度没有?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(4)
巴扎黑

在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

PHP中文网

{}是一个对象, 对象没有length方法。
{}+{}是一个字符串。, 字符串有length方法。
{}+{}变为[object Object][object Object]的原理是js是弱类型, 隐性转换了数据类型。

阿神

{}+{}时执行了字符串拼接,自动调用了对象的toString()方法转换为字符串。

巴扎黑
typeof a
"string"
a
"[object Object][object Object]"
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号