Javascript 使用NaN的任何算术运算都应该是NaN
我有一个类似的声明Javascript 使用NaN的任何算术运算都应该是NaN,javascript,nan,Javascript,Nan,我有一个类似的声明 var x = parseInt(1)+'b'; 为什么这个结果是1b,但isNAN'b'返回真值; 所以结果应该是NaN?数字+字符串不是算术运算 在Number+String语句中,引擎将数字转换为等效字符串 在您的情况下,它将是1->“1”。然后是简单的字符串连接,因为+运算符将连接两个字符串 '1' + 'b' === '1b'; 代码片段 console.log1+'b' 数字+字符串不是算术运算 在Number+String语句中,引擎将数字转换为等效字符串
var x = parseInt(1)+'b';
为什么这个结果是1b,但isNAN'b'返回真值;
所以结果应该是NaN?数字+字符串不是算术运算
在Number+String语句中,引擎将数字转换为等效字符串
在您的情况下,它将是1->“1”。然后是简单的字符串连接,因为+运算符将连接两个字符串
'1' + 'b' === '1b';
代码片段
console.log1+'b' 数字+字符串不是算术运算
在Number+String语句中,引擎将数字转换为等效字符串
在您的情况下,它将是1->“1”。然后是简单的字符串连接,因为+运算符将连接两个字符串
'1' + 'b' === '1b';
代码片段
console.log1+'b' 如果任一操作数是字符串,则+运算符定义为串联
源:如果任一操作数是字符串,则+运算符定义为串联
来源:因为它不是算术运算,所以是字符串串联。无论何时+的任一操作数是字符串,都会执行字符串串联而不是加法。如果另一个操作数不是字符串,则转换为字符串。因此,结果是1+b=>1b。因为它不是算术运算,而是字符串串联。无论何时+的任一操作数是字符串,都会执行字符串串联而不是加法。如果另一个操作数不是字符串,则转换为字符串。因此,最终的结果是1+b=>1b。当+运算符的参数之一是字符串时,它将被解释为串联运算符,而不是加法运算符。非字符串值将转换为字符串,并附加到字符串值或在字符串值前面加上前缀,具体取决于它是否分别位于运算符的右侧或左侧。当+运算符将字符串作为其参数之一时,它将被解释为串联运算符,而不是加法运算符。非字符串值将转换为字符串,并附加到字符串值或在其前面加上前缀,取决于它是否分别位于运算符的右侧或左侧。您已经得到答案,但也检查了有关短答案的文档:因为它不是算术运算:您已经得到答案,但也检查了有关短答案的文档:因为它不是算术运算: