javascript 简单五种基础数据类型的转化
一 数据类型的相互转化(强转化)
1 数字类型,布尔值,undefined ,null转化为字符型
方法 Srting()
都会变成相当于添加引号的字符串形式
2 字符型,布尔值,undefined ,null转化为数字类型
方法 Number()
字符串转换为数字类型时
当字符串包含非数字字符,转化为NaN
当数字字符串转化时,转化为数字
当空字符串或者空格字符串转化时,转化为 0
布尔值转化数字类型时
true转化为 1
false转化为 0
undefined转化会转化为 NaN
null转化会转化为 0
3 字符型,数字类型,undefined ,null转化为布尔值
方法 Boolean()
数字类型转化布尔值时
具体数字包括正数,负数,infinity都转化为 true
当数字为0,NaN时,转化为 false
字符串转化布尔值时
除了空字符串都转化为true
null,undefined都转化为 false
二 数据类型的隐式转化(弱转化)
1 自动转化为字符串 + 里面遇到字符串的时候,优先做字符串的拼接
eg
var a = 1 ;
var b = "2" ;
var c = a + b ;
console.log(c); // 12 (+做拼接效果)
2 自动转化为布尔值 比较运算和逻辑运算的结果都是布尔值
eg
var d = 3 >= 2 && 4 >= 3;
console.log(d); //true
var d = !false ;
console.log(d); //true
var d = !1 ;
console.log(d); //false
3 自动转化为数字 算数运算除了加号以外
eg
var a = "1" ;
var b = "0" ;
var c = a - b ;
console.log(c); // 1
var a = 2 ;
var b = "ha";
var c = a - b ;
console.log(c); // NaN
console.log(true + false); // 1
console.log(1 + false); // 1
三 其他转化方式
1 字符串转化为数字
x * 1 x / 1 x - 0
eg
非数字字符串转化
var x= ' haha' *1;
console.log(x); //NaN
纯数字字符串转化
var x = '666'/1;
console.log(x); //666(type变成number)
2 其他数据类型转化为字符串
x + ""
eg
数字型转化
var m = 666+"";
console.log(m); // 666(type变成string)
布尔值转化
var m = false+"";
console.log(m);// false(type变成string)
null转化
var m = null+"";
console.log(m); //null(type变成string)