一、强制类型转换
强制类型转换:将一个数据类型转换为其他的数据类型。
主要是指将其他类型转换为string、number、boolean这几种类型。
其他的类型——>string
方法一:拼接 变量+“ ”或者变量+“ abc”
var a = 123;
console.log(a+" ");
console.log(a+"abc");
方法二:调用toString()方法
语法:变量.toString()
【重要】该方法不会影响到原变量,它会将转换的结果进行返回。
若写成a = a.toStrinng()
,则会直接修改原变量。
注:1、null和underfined这两个值没有toString()方法,则不能使用该方法。
2、Number类型的变量,在调用toString()时,可以在方法中传递一个整数作为参数。此时它将会把数字转换为指定的进制,如果不指定则默认转换为10进制。
var a = 255;
a = a.toString(2);
console.log(a); // 11111111
console.log(typeof a); // string
方法三:使用String()函数
格式:String(变量)
使用此方法进行强制类型转换时:
1、对于Number和Boolean而言,实际上就是调用了toString()方法。
2、对于null和underfined,是将null直接转换味”null“,将underfined直接转换为”underfined“。
prompt():用来弹出能够让用户输入的对话框,值得注意的是,不管输入什么,都是字符串类型。
其他的数据类型——>Number
方法一:使用Number()函数
1、字符串——>数字
- 如果字符串中是纯数字,则直接将其转换为数字。
- 如果字符串中有非数字的内容,则转换为NaN。(此处可以看到Number()函数的局限性)
- 如果字符串是一个空串或者是一个全是空格的字符串,则转换为0。
2、布尔——>数字
- true 转成 1
- false 转成 0
3、null——>数字
结果为:0
4、underfined——>数字
结果为NaN
方法二:parseInt():字符串——>整数
parseInt()的作用是将字符串中的有效的整数内容转为数字。向下取整数。
parseInt("5.3"); //结果为5
parseInt("5.8"); //结果为5
parseInt()具有的特性:
1、只保留字符串最开头的数字,后面的中文自动消失。
2、对于小数,向下取整,不会进行四舍五入。
3、如果对非String使用parseInt()或parseFloat(),它会先将其转换为String然后再操作。
对于非字符串的非数值类型,不要使用parseInt进行转换,直接使用Number()函数进行转换。
4、带两个参数时,表示进制转换。
方法三:parseFloat():字符串——>浮点数(小数)
parseFloat()的作用是:将字符串转换为浮点数。
parseFloat()和parseInt()的作用类似,不同的是,parseFloat()可以获得有效的小数部分。
var a = "123.2234";
console.log(parseFloat(a)); //输出为123.2234
var a = "123.2234.45fffdf";
console.log(parseFloat(a)); //输出为123.2234
其他类型——>Boolean【重要】
使用Boolean()函数:
1、数字 --> 布尔。除了0和NaN,其余的都是true。
2、字符串 —> 布尔。除了空串,其余的都是true。
3、null和undefined都会转换为false。
4、对象也会转换为true。
注:转换成Boolean的这几种情况很重要,开发中会经常用到。
各进制的数字
- 16进制的数字,以
0x
开头 - 8进制的数字,以
0
开头 - 2进制的数字,
0b
开头(不是所有的浏览器都支持:chrome和火狐支持,IE不支持)
注意:如果数字的进制类型有二义性时&