目录
💚💚💚强制类型转换
1)指的是将一个数据类型强制转换为其他的数据类型
2)类型主要转换为 String Number Boolean这三种类型
💚💚一、强制转换类型为 String
方法一:1、调用被转换数据类型的 toString() 方法;
2、该方法不会影响到原变量,它会将转换的结果返回(我们需要重新给转换的结果赋给一个新的变量);
3、注意:null 和 undefined 这两个值没有 toString() 方法,会报错;
var a = 111;
b = a.toString(); //调用xxx的yyy()方法,就是xxx.yyy()
console.log(typeof a);
判断出 b 是由数值强制转换字符串类型
方法二:1、调用String() 函数,并将被转换的数据作为参数传递给函数
2、使用String() 函数进行强制转换时,
对于Number 和 Boolean 实际上就是调用 toString() 方法
但是对于null 和 undefined,就不会调用toString() 方法
它会将 null 直接转换为 "null"
将 undefined 直接转换为 "undefined"
a = 111;
b = String(a); //将参数a赋给String()函数
💚💚二、强制转换类型为Number
方法一:1、使用Number() 函数(警告:稍微有非法的字母就换转换为 NaN)
字符串----->数字
(1)纯数字的字符串,则直接转换为数字;不是纯数字的字符串,则转换为 NaN;
(2)字符串是空串或是全是空格,则转换为0;
布尔------->数字
(1)true 转换为 1;
(2)false 转换为 0;
Null ------> 数字 则转换为 0
Undefined------> 数字 则转换为 NaN
var a = "111";
b = Number(a); //调用Number()函数将a转换为Number类型
console.log(typeof b);
输出强制转换类型为 Number类型
方法二、专门用来对付字符串
(1)parseInt() 把一个字符串转换为一个整数(有效地提取整数内容,转换为number类型)
(2)parseFloat() 把一个字符串转换为一个浮点数
var a = "111px";
b = parseInt(a); //调用parseInt()函数将a转换为Number类型
console.log(typeof b;
输出强制转换类型为 Number类型
console.log(b);
输出为数值111
###如果对非String使用 parseInt() 或 parseFloat(),得先将其转换为String再操作
💚💚💚###、进制
1)以 0x 开头,表示16进制数;
2)以 0 开头,表示8进制数;
3)以 0b 开头,表示2进制数(但不是所有浏览器都支持);
像 "060" 这些字符串,有些浏览器会当成8进制解析,有些会当成10进制解析,解决方法可以再parseInt() 方法中传递一个第二个参数,来指定数字的进制
a = "060";
a = parseInt(a,10); //指定将a转换为 10 进制数输出
a = parseInt(a,8); //指定将a转换为 8 进制数输出
💚💚三、强制转换类型为Boolean
使用Boolean() 函数:
数字------->布尔:除了 0 和 NaN ,其余的都是true;
字符串------->布尔:除了空串,其余的都是true;
null 和 undefined 都会转换为 false;
对象也会转换为 true;
var a = "111";
b = Boolean(a); //调用Boolean()函数将a转换为Boolean类型
console.log(typeof b);
输出强制转换类型为 Boolean类型