【问题标题】:Javascript toString() methodJavascript toString() 方法
【发布时间】:2012-07-08 02:04:40
【问题描述】:

hol 是一个Date() 对象。

为什么hol.toString() 有用或有帮助? 不就是写/输出hol吗?

还有其他相关的方法,例如

toDateString()
toTimeString()

【问题讨论】:

  • 我对 javascript 并不太感兴趣,但我猜这就是 java 之类的东西。当您说 Hol 它是日期类型的对象时。因此,使用该对象将有许多可用的日期函数(toDateString 和 toTimeString 是其中两个),而一旦将它们转换为字符串,您就可以进行字符串操作,因为它现在是一个字符串对象

标签: javascript methods tostring


【解决方案1】:

alert("The time is now: " + hol); 这样的操作实际上是在隐式调用alert("The time is now: " + hol.toString());

另外,来自 Mozilla 开发者网络 [1] [2]:

var d = new Date(1993, 6, 28, 14, 39, 7);
println(d.toString()); // prints Wed Jul 28 1993 14:39:07 GMT-0600 (PDT)
println(d.toDateString()); // prints Wed Jul 28 1993
println(d.toTimeString()); // prints 14:39:07 GMT-0600 (PDT)

因此,其他方法提供了不同的预定义格式。

还要注意toDateStringtoTimeString 方法的记录:

toDateString/toTimeString 方法特别有用,因为 实现 ECMA-262 的兼容引擎可能在字符串中有所不同 从 toString 中获取 Date 对象,格式为 依赖于实现的简单字符串切片方法可能不会 在多个引擎中产生一致的结果。

【讨论】:

    【解决方案2】:

    快速查看W3Schools 会发现,只要Date() 对象需要显示为字符串,就会调用toString(),因此您无需自己调用它。

    另外,如果你想显示一个Date() 对象,你应该使用你提到的方法(toDateString(),toTimeString()),但是当我编写一个显示日期的脚本时,我没有' t 使用其中任何一种方法。我使用了Date() 对象的getWhatever() 方法。这使您可以更好地控制要显示的内容。

    除非你不想自己编程:)

    【讨论】:

      【解决方案3】:

      实际上 document.write(你猜这就是writing 的意思)调用“toString”将任何对象转换为字符串。这是我们可以定义对象的字符串表示方式的函数。如果未定义该函数,则不会打印与该对象等效的字符串。

      例如:http://jsfiddle.net/8bP37/

      也试试这个

      Date.prototype.toString = null;
      document.write(new Date());
      

      您可以看到显示的时间值。

      【讨论】:

      • 超过document.write使用。这种特殊行为的原因是因为内部函数ToString 使用ToPrimitive,它将尝试使用对象的可调用toString 方法——或者如果toString 不是可调用valueOf可用的。这就是为什么当您摆脱Date#toString(如您的示例)时,它最终将时间显示为UNIX时间戳:这是Date#valueOf的结果。
      猜你喜欢
      • 1970-01-01
      • 2016-07-21
      • 1970-01-01
      • 2021-10-03
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      • 2017-01-25
      相关资源
      最近更新 更多