1.字符串转整数
(1)使用parseInt()方法
- 参数为字符串,结果为该字符串转换而来的整数;
- 如果字符串首字符不是一个数字,转换失败,返回NaN;否则,转换到字符串中第一个不是数字的字符为止。及遇到字母、下划线、小数点等字符立即停止转换;
- 16进制的符号0x不会让转换停止;
- parseInt() 还可以有第二个参数,表示需要转换字符串的进制。
var a="123abc"
parseInt(a);//返回123
parseInt("12.2");//返回12
var b="0x10";
parseInt(b,16);//返回十进制16
var c="123abc";
parseInt(c,16);//返回十进制整数1194684
parseInt("a12");//返回NaN
(2)使用Number() 进行强制类型转换
- 使用NUmber() 转换一个字符串,这个字符串必须是含有数字的字符串,即数字的字符串形式。
Number("12");//返回12
Number("12a12");//返回NaN
Number("");//返回0
2.字符串转小数
(1)使用parseFloat()
- parseFloat()方法只转换到字符串中第一个不是数字的字符为止(这个字符不包括第一个是小数点)。
parseFloat("12.2.2");//返回12
parseFloat("12.2a");//返回12
parseFloat(null);//返回0
3.数字转字符串
(1)toString()实现一般的数字转字符串
- toString() 括号内有一个可选的参赛,指几进制的形式转换为字符串
var number=1.0000;
console.log(number.toString());//返回 "1.0000"
var number2=0x10;//16进制10
console.log(number2.toString());//返回 "16"
number2=15;
console.log(number2.toString(16));//返回 "f"
(2)String() 是强制类型转换
- String()可以转换null和undefined,而toString()不可以;
- 调用String()函数,并将被转换的数据作为参数传递给函数。
var number1=12345;
number1=String(number1);// 返回"12345"
var number2=null;
console.log(String(number2));// 返回"null"
4.布尔型与其他类型的相互转换
(1)Boolean()方法实现其他的类型转布尔型
- 布尔型的值只有两个true和false;
- 布尔型转为字符串直接就是字符串true和false;
- 布尔型中的true转换为数字1,布尔型中的false转换为数字0;
- 数字0、null、unidefined、空字符串转换为布尔型的false,其他所有都是true.
var a=true;
a.toString();//返回 "true"
Number(true);//返回 1
Boolean("hello"); //返回true
Boolean("");//空字符串返回false
Boolaen(" ");//空格字符串返回true
5.隐式转换
- JavaScript是一种弱类型语言,不同类型的变量在运算符作用下会发生类型转换。这个 是编译环境下直接进行的,所有叫隐式转换;
- +运算的两个操作数是数字和字符串,数字会被转换为字符串;
- +运算符的两个操作数是数字和布尔型,布尔型会被转换为数字;
- +运算的两个操作数是字符串和布尔型,布尔型会被转为字符串;
- 减、乘、除、取余运算会把其他类型转换为数字;
- if括号中单独的一个变量会被转换为布尔型。
//当与空字符串相加时,JS会自动把值转换为字符串
var a=123;
a=a+"";
console.log(typeof a);//返回类型为string
//把数组转化为字符串
var b=[1,2,3];
b=b+"";
console.log(b);//返回字符串"1,2,3"
//如果变量乘1,则变量会被JS自动转换为数值
var a=1;
var b="1";
console.log(a+(b*1));//返回数值2
//如果变量减0,则变量会被JS自动转换为数值
var a="123";
a=a-0;
console.log(typeof a);//返回类型为number