javascript变量怎么转换为字符串


当前第2页 返回上一页

1

2

3

4

5

6

7

8

9

10

11

12

var obj = {

 valueOf: function()

 {

  console.log("valueOf");

  return {};

 },

 toString: function()

 {

  console.log("toString");

  return {};

 }

};

调用结果:

1

2

3

4

5

6

7

8

> "" + obj

valueOf

toString

TypeError: Cannot convert object to primitive value

> String(obj)

toString

valueOf

TypeError: Cannot convert object to primitive value

它们的结果相同

""+valueString(value)虽然不同,但是我们很少能感觉到。因为,大多数object使用默认的valueOf() ,它返回对象本身:

1

2

3

> var x = {}

> x.valueOf() === x

true

由于valueOf()返回值并非primitive,因此ToPrimitive(Number)会跳过valueOf() ,而返回toString()的返回值。这样,与ToPrimitive(String)的返回值就一样了。

当object是Boolean、Number或者String实例时,valueOf()将返回primitive。这就意味着两者的计算过程是这样的:

  • ToPrimitive(Number) valueOf()返回primitive值,然后使用ToString()转换为字符串。
  • ToPrimitive(String) : toString()通过ToString()函数将primitive值转换为字符串。

可知,虽然计算过程不同,但是它们的结果是一样的。

结论

那么你该选择哪种方法呢?如果你可以确保value值不是null和undefined,那么不妨使用value.toString() 。否则,你只能使用""+valueString(value) ,它们基本上是一样的。

【相关推荐:javascript学习教程

以上就是javascript变量怎么转换为字符串的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

通过实例了解javascript数组方法slice()的使用方法

html怎样格式化json数据

javascript是一门什么样的语言

如何使用javascript lastindexof()方法

深入理解javascript的并发模型和事件循环机制

详解js中值传递和引用传递的区别

分享12个提升程序员软技能与效率的开发工具

javascript也属于编程吗

使用canvas实现迷宫游戏

为什么使用vue的作用域插槽?什么时候使用?

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...