【问题标题】:Using valueOf / toString使用 valueOf / toString
【发布时间】:2019-01-09 12:01:28
【问题描述】:

我环顾四周,但找不到明确的答案。我是 Javascript 新手,所以希望能以简单的方式找到答案

我正在学习 toString / valueOf,它们被描述为本质上做同样的事情

有人能解释一下为什么需要使用这些吗?例如。在下面的代码中,为什么你需要 valueOf / toString 如果 document.write(array); 会做同样的事情?

var array= ["James Jones", "123 Street", 500.20];

document.write(array.toString());

【问题讨论】:

  • 您不应该在阵列上专门调用toString() 来使用该方法。 document.write 将为您完成。我对您的确切要求感到有些困惑。

标签: javascript arrays tostring value-of


【解决方案1】:

Array.prototype.valueOf 将返回与数组(对象)相同的内容。 toString 会将 Array 转换为 String,可以写入到文档中。

toString 也会将其他 Object 类型转换为 String。

var array = [1, 2, 3];
console.log("Value of:",array.valueOf());
console.log("Array: ", array);
console.log("toString: ", array.toString());

【讨论】:

    【解决方案2】:

    这是因为 write() 不能使用数组作为方法的输入。为了使用该方法,必须首先将数组转换为字符串。

    一般来说,像 valueOf 和 toString 这样的方法用于将一种对象类型的值转换为另一种对象类型的值。例如 valueOf 用于将字符串转换为整数时,例如将“23”转换为 23。相反,toString 会采取相反的方式,将 23 转换为“23”。

    希望这会有所帮助!

    【讨论】:

      【解决方案3】:

      有人能解释一下为什么需要使用这些吗?

      在大多数情况下,您不必使用它们。在很多情况下,js 会(隐式地)为你调用它们,但是它们被定义为方法允许你自定义它们:

       alert({ toString() { return "whats going on?"; } });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-03
        • 1970-01-01
        相关资源
        最近更新 更多