javascript是一种弱类型的语言,在声明变量的时候不会强制它的数据类型,并且会根据上下文环境自动的进行数据类型的转换
1)字符串值转换为数值
Number函数 parseInt函数(可以接受第二个参数,指定转换的进制,默认十进制) parseFloat函数
var a = Number(‘100‘);
alert(a);//100
alert(typeof(a));//number
var b = parseInt(‘100‘);
alert(b);//100
alert(typeof(b));//number
上面的两个例子都将字符串值装换成了数值
字符串转化为数值的隐式转换
alert(typeof(‘100‘ - 1));//number
alert(typeof(‘100‘ - ‘‘));//number
在减法运算符的时候,字符串值默认转换为了数值
加法的时候
var str = ‘abc‘ + 1;
alert(str);‘abc1’
alert(typeof(str));//string
会将数值转换成字符串值,变成字符串的连接
2)数值转换为字符串
调用string函数 或者toString方法
var a = String(100);
alert(typeof(a));//string
var b = (100).toString();
alert(typeof(b));//string
数值转换为字符串的隐式转换
加法的时候
var str = ‘abc‘ + 1;
alert(str);‘abc1’
alert(typeof(str));//string
惯用方法
字符串值转换为数值
var a = ‘1‘;
alert(typeof(+a));//number
数值转换为字符串值
var b = 1 + ‘‘;
alert(typeof(b));//string
3)其他类型转换为布尔类型
数值0 数值NaN null值 undefined值 空字符串‘’ 这5个值在进行隐式转换的时候会转换为false 其他值均转换为true
if(0) {
}
我们可以使用!!来进行隐式的数据类型转换
!是布尔型操作的逻辑非运算符,可以在操作数不是布尔型的情况下将其转换为布尔型 所以通过!!就可以完成布尔类型的转换
原文:http://www.cnblogs.com/tiantianwaigong/p/4345591.html