字符串< - > Javascript中的数字转换

时间:2010-11-11 17:43:13

标签: javascript types

所有

以下是我用JS编写的代码。

<html>
   <head>
      <title>Fibonacci trial</title>
   </head>
   <body>
      <script type="text/javascript">
            var strRepresen = new String();
            var numberReprsen = new Number();
            strRepresen = "XXX";
            numberReprsen = 10;
            strRepresen = 5;
            numberReprsen = "XXX again";
            document.write(strRepresen);
            document.write(numberReprsen);
      </script>
   </body>
</html>

我有以下问题:

1&gt;当我将numberReprsen = "XXX again";定义为Number对象时,我无法理解行numberReprsen如何不给出错误或NaN。
2&gt;我看过很多脚本没有写<script type = "text/javascript">。提及脚本类型是标准还是授权?

注意:我是Javascript中的初学者

3 个答案:

答案 0 :(得分:2)

  

当我将numberReprsen定义为Number对象时,我无法理解行numberReprsen = "XXX again";如何不给出错误或NaN。

JavaScript中的变量未输入。您尚未将numberReprsen定义为Number变量。您已将其定义为变量。它曾经碰巧包含一个Number对象是无关紧要的。您可以将任何存储在其中。

  

我看过很多脚本没有写<script type = "text/javascript">。提及脚本类型是标准还是授权?

我认为type是最新(X)HTML规范所要求的属性。但是,通常,指定是一个好主意。我一直这样做。

答案 1 :(得分:1)

就您的第一个问题而言,Javascript不是静态类型的语言;它是一种动态类型的语言。因此,类型与相关联,而不与变量相关联。

最初numberReprsen绑定到一个数字,稍后您将它重新绑定到一个字符串。在这里,你看到的正是我所描述的; Javascript根据键入变量(最初是一个数字,然后是一个字符串)。

JavaScript有多种方法可以测试对象的类型,其中之一就是鸭子打字。

要回答您的第二个问题,我认为它是由[X] HTML规范强制执行的。无论哪种方式,我总是指定type属性,我认为这是最佳做法。

答案 2 :(得分:1)

它不会引发错误,因为你这样做:

numberReprsen = "XXX again";

您实际上是将其类型更改为字符串并覆盖其先前的值。