Javascript:与“连接”&引用;不';行不通 函数rzut(){ document.getElementById(“wynik”).innerHTML=“wynik to”,Math.floor(Math.random()*6)+1; }

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

不知什么原因,我的脚本只显示了“Wynik to”,它跳过了下一部分(math.floor等)

好的,让我们看一些基础知识

我想提出的第一件事是一个概念。简言之,重载运算符是对不同操作数具有不同行为的运算符。Javascript中重载运算符的一个示例是
+
。例如:

<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);