+ 拼接操作,+x or String(x)?

xiaoxiao2021-02-28  21

+运算符可用于数字加法,同时也可以用于字符串拼接。如果+的其中一个操作符是字符串(或者通过 隐式强制转换可以得到字符串),则执行字符串拼接;否则执行数字加法。

需要注意的是对于数组而言,不能通过 valueOf()方法得到简单基本类型值,于是转而调用 toString()方法。

[1,2] + [3, 4]; // "1,23,4"

对于对象同样会先调用 valueOf()方法,然后通过 toString()方法返回对象的字符串表示。

var a = {}; a + 123; // "[object Object]123"

对于 a+""隐式转换和 String(a)显示转换有一个细微的差别: a+''会对a调用 valueOf()方法,而 String()直接调用 toString()方法。大多数情况下我们不会考虑这个问题,除非真遇到。

var a = { valueOf: function() { return 42; }, toString: function() { return 4; } } a + ''; // 42 String(a); // 4
转载请注明原文地址: https://www.6miu.com/read-2632607.html

最新回复(0)