Arn*_*ntz 31 javascript string
以下代码给出了奇怪的结果:
console.log("" + 1 + 10 + 2 - 5 + "8");Run Code Online (Sandbox Code Playgroud)
我已经尝试输入各种不同的值来解决它,但我无法理解引擎盖下发生了什么.
Phr*_*ogz 68
"" + 1 === "1"
"1" + 10 === "110"
"110" + 2 === "1102"
"1102" - 5 === 1097
1097 + "8" === "10978"
Run Code Online (Sandbox Code Playgroud)
在JavaScript中,+运算符用于数字加法和字符串连接.当您向字符串"添加"数字时,解释器会将您的数字转换为字符串并将它们连接在一起.
-但是,当您使用运算符时,字符串将转换回数字,以便可能发生数字减法.
然后,当您"添加" "8"字符串时,再次发生字符串连接.该数字1097将转换为字符串"1097",然后加入"8".
amd*_*amd 11
string + number = 连接字符串
number + number =两个数字的总和
string - number =(强制字符串)与数字之间的差异
如果一个或两个操作数是字符串,则加号被视为字符串连接运算符而不是添加数字.
在减去运营商总是试图将两个操作数转换为数字.
所以:
"" + 1 + 10 + 2 = (string) "1102"
"1102" - 5 = (number) 1097
1097 + "8" = (string) "10798"
Run Code Online (Sandbox Code Playgroud)
document.getElementById("1").innerHTML = "";
document.getElementById("2").innerHTML = "" + 1;
document.getElementById("3").innerHTML = "" + 1 + 10;
document.getElementById("4").innerHTML = "" + 1 + 10 + 2
document.getElementById("5").innerHTML = "" + 1 + 10 + 2 - 5
document.getElementById("6").innerHTML = "" + 1 + 10 + 2 - 5 + "8";Run Code Online (Sandbox Code Playgroud)
<ol>
<li id='1'></li>
<li id='2'></li>
<li id='3'></li>
<li id='4'></li>
<li id='5'></li>
<li id='6'></li>
</ol>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13386 次 |
| 最近记录: |