Javascript:与“连接”&引用;不';行不通 函数rzut(){ document.getElementById(“wynik”).innerHTML=“wynik to”,Math.floor(Math.random()*6)+1; }
不知什么原因,我的脚本只显示了“Wynik to”,它跳过了下一部分(math.floor等)好的,让我们看一些基础知识 我想提出的第一件事是一个概念。简言之,重载运算符是对不同操作数具有不同行为的运算符。Javascript中重载运算符的一个示例是Javascript:与“连接”&引用;不';行不通 函数rzut(){ document.getElementById(“wynik”).innerHTML=“wynik to”,Math.floor(Math.random()*6)+1; },javascript,Javascript,不知什么原因,我的脚本只显示了“Wynik to”,它跳过了下一部分(math.floor等)好的,让我们看一些基础知识 我想提出的第一件事是一个概念。简言之,重载运算符是对不同操作数具有不同行为的运算符。Javascript中重载运算符的一个示例是+。例如: <button onclick="rzut()" /> <div id="wynik" /> <script type="text/javascript"> function rzut() { doc
+
。例如:
<button onclick="rzut()" />
<div id="wynik" />
<script type="text/javascript">
function rzut() {
document.getElementById("wynik").innerHTML = "Wynik to",Math.floor(Math.random()*6)+1;
}
</script>
正如您所看到的,添加两个数值具有对字段求和的效果。但是
var x = 4 + 4;
// x = 8
因为类型是字符串,所以它的行为不同,因此它具有重载行为
+
符号将对数值求和,但连接字符串值
把这一点带到您的示例中,您希望得到一个字符串值,如
var x = "4" + "4";
// x = "44";
其中3
可以变化。那么让我们这样看
"Wynik to,3"
其中X是某个变量。好。。这意味着您必须在运行中构建字符串。。因此,遵循您的方法(而不是使用已经引入的一些漂亮的ES6功能),您可以使用我们友好的重载+
来实现这一点
"Wynik to,X"
其中X是介于1和6之间的某个随机数,因此
"Wynik to," + X
你会看到,右边有一个数值,左边有一个字符串值
Javascript在这种情况下所做的就是所谓的算术提升,即所有操作数都提升到最高操作数的精度
在本例中,方程式的右侧将提升为字符串。然后,正如我们上面看到的,我们的重载操作符知道如何处理两个字符串。您希望
,
做什么?如果要连接字符串,需要使用+
。将普通文本与可执行脚本编辑分开:好的,谢谢,我如何添加您的注释?您的行应该是:document.getElementById(“wynik”).innerHTML=“wynik to”+(Math.floor(Math.random()*6)+1)代码>
"Wynik to " + (Math.floor(Math.random()*6)+1);