请注意,数字可能会意外地转换为字符串或NaN(非数字)。
JavaScript是松散类型的。变量可以包含不同的数据类型,并且变量可以更改其数据类型:
var x = "Hello"; // typeof x是一个字符串 x = 5; // 将typeof x更改为数字
在进行数学运算时,JavaScript可以将数字转换为字符串:
var x = 5 + 7; // x.valueOf()是12,typeof x是一个数字 var x = 5 + "7"; // x.valueOf()是57,typeof x是一个字符串 var x = "5" + 7; // x.valueOf()是57,typeof x是一个字符串 var x = 5 - 7; // x.valueOf()是-2,typeof x是一个数字 var x = 5 - "7"; // x.valueOf()是-2,typeof x是一个数字 var x = "5" - 7; // x.valueOf()是-2,typeof x是一个数字 var x = 5 - "x"; // x.valueOf()是NaN,typeof x是一个数字
从字符串中减去字符串不会产生错误,但会返回NaN(不是数字):
"Hello" - "Dolly" // 返回NaN