在JavaScript中有6种不同的类型:string、number、boolean、object、function、symbol(ES6),在程序开发过程中可以通过手动和自动两种方式进行类型转换。
手动类型转换
转换为string
- 可以使用.toString()和调用String()进行转换
var a=123;
console.log(a.toString()); //null和undefined不用调用该方法
console.log(String(a));
转换为number
- 可以使用Number()进行转换
- 字符串转换为Number时,非法数字会转换为NaN,空字符串转换为0
- 布尔值转换时,ture为1,false为0
- undefined也会转换为NaN
- NaN是一个特殊的非数字值,但类型为number
- 调用parseInt()将字符串中的整数,转换为Number
- 调用PaseFloat()将字符串中的小数,转换为Number
转换为boolean
- 使用Boolean()函数进行转换
- 字符串时,空串转换为false,非空串转换为true
- 数值时0和NaN转换为false,大于0时转换为true
- null和undefined转换为false
自动类型转换
在js中,在通过运算符进行运算时,如果两边的值数据类型不统一,系统会将两边的值类型进行自动转换,然后进行运算。
- String + 其它类型
当使用string与其它类型进行+运算时,其它类型自动转换成string类型
undefined --> "undefined"
null --> "null"
true --> "true"
false --> "false"
NaN --> "NaN"
1 --> "1"
- Number进行运算
与字符串运算除+法以外,会将字符串转换为数值
undefined --> NaN
null --> 0
true --> 1
false --> 0
"abc" --> NaN
"a123" --> NaN
" 123 " --> 123 //忽略空格转换为数值
- 自动转换示例
// +
10 + '20' //'2010'
// -
10 - '20' //-10
10 - 'one' //NaN
10 - '100a' //NaN
// *
10*'20' //200
'10'*'20' //200
// /
20/'10' //2
'20'/'10' //2
'20'/'one' //NaN
// ==
undefined == null; //true
'0' == 0; //true,字符串转数字
0 == false; //true,布尔转数字
'0' == false; //true,两者转数字
null == false; //false
undefined == false; //false
网友评论