gpt4 book ai didi

javascript - JavaScript 中的自动类型转换

转载 作者:数据小太阳 更新时间:2023-10-29 04:10:47 27 4
gpt4 key购买 nike

以下 JavaScript 中的所有表达式都非常明显。

var x = 10 + 10;

x 的值为20

x = 10 + '10';

在这种情况下,x 的值为 1010,因为 + 运算符已重载。如果任何操作数是字符串类型,则进行字符串连接,如果所有操作数都是数字,则执行加法。

x = 10 - 10;
x = 10 - '10';

在这两种情况下,x 的值都将是 0,因为 - 运算符不会以这种方式重载,并且所有操作数被转换为数字,如果它们不是在执行实际减法之前(你可以澄清,如果我错了的话)。


下面的表达式会发生什么。

x = '100' - -'150';    

x 的值为 250。这看起来也很明显,但这个表达式在某种程度上似乎等同于以下表达式。

x = '100' +'150';

如果是这种情况,那么这两个字符串将被连接并分配给 100150x。那么为什么在这种情况下执行加法呢?


编辑:

+'10' + 5 返回 15'a'++ 'b' 返回 aNaN .有谁知道为什么吗?

最佳答案

在您的情况下,- - 不会首先评估为等同于 +-"150" 被评估为一个数字,因此变成了 -150

因为你不能减去一个字符串(NaN),JS 然后取"100" 并生成一个数字,然后它运行100 - -150 即 250。

关键是你不能减去类型字符串,所以它将这些字符串转换为数字。

关于javascript - JavaScript 中的自动类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12982114/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com