所有
以下是我用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中的初学者。
答案 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";
您实际上是将其类型更改为字符串并覆盖其先前的值。