我们在写js代码时都会遇上数据的运算,但是数据在运算时都要转换成相同数据类型才能运算。
下面举几个例子说明在运算中数据类型的转换:
例一、
var i = 5;
var j = '5';
console.log(i+j);
打印结果是 55,说明当‘+’遇上字符串时作字符串拼接使用;
例二、
var i = 5;
var j = '5';
var m = 5;
console.log(i+m+j);
打印结果是 105,说明第一个‘+’作加使用,第二个‘+’作字符串拼接使用;
例三、
var i = 5;
var j = '5';
console.log(i-j);
打印结果是 0,说明出现‘-’时把字符串转换成number数据类型使用;
例四、
var i = 5;
var n = '5k';
console.log(n-i);
打印结果是 NaN,说明把字符串转换成number数据类型只有纯数字次才能进行成功转换;
例五、
var i = 5;
var k ;
console.log(k-i);
打印结果是 NaN,说明undefined转换成number数据类型就是NaN;
例六、
var k ;
var h = null;
console.log(k-h);
打印结果是 NaN,说明undefined转换成number数据类型就是NaN;
例七、
var i = 5 ;
var h = null;
console.log(i-k);
打印结果是 5,说明null转换成number数据类型是0;
例八、
var i = 5 ;
var h = null;
console.log(i+h);
打印结果是 5,说明①无字符串时‘+’是加法运算,②null转换成number数据类型是0;
例九、
var k ;
var h = null;
console.log(k+h);
打印结果是 5,说明①无字符串时‘+’是加法运算,②null转换成number数据类型是0,③undefined转换成number数据类型就是NaN;
例十、
var k ;
var p = ‘’;
console.log(k+p);
打印结果是 undefined,说明即使是一个空字符串出现时 ‘+’也是做字符串拼接;
例十一、
var i =false ;
var j = true;
console.log(i+j);
打印结果是 1,说明Boolean类型遇到‘+’时被转换成number类型使用,其中true =1,false = 0;
小结:1.当‘+’两端出现字符串时作拼接用;2.当‘+’两端无字符串时作加法运算;3.当做加法运算时,其他数据类型会转换成number类型,undefined转换成NaN,null转换成0,Boolean的false=0/true=1;4.当‘-’时,数据类型都要转换成number,字符串只有当是纯数字是才能转换成number,若不是纯数字组成则转换成NaN,其他数据类型转换同加法运算时。