强制类型转换
String
把一个数据类型强制转换为String类型有两种方法:
方法一:toString()方法
var a = 123;
console.log(typeof a); //Number
var b = a.toString(); //调佣被转换数据的toString()方法。该方法不会影响原变量,它会将转换的结果进行返回
console.log(typeof b) //String
var c = true;
var c = c.toString();
console.log(typeof c); //String
Null和Undefined 不能进行转换,因为它们没有toString方法
方法二:调用String()函数
var d = 123;
var d = String(d); // 调用String()函数,并将转换的数据作为参数传递给函数
console.log(typeof d) // String
var f = null; //Null也可以被强制转换
var f = String(f);
console.log(typeof f) // String
// Null和Undefined 可以进行强制转换。
Number
转换情况
- 数字 —> 数字
- 非全数字 —> NaN
- 空串和满空格 —> 0
- 布尔值转换:true —> 1; false —> 0
- null —> NaN
- Undefined —> NaN
方法一:Number() 函数
var b = "123";
b = Number(b);
console.log(b); // 123
var a = "wad5456+-+-";
a = Number(a);
console.log(a); //NaN
var c = "";
var d = " ";
c = Number(c);
d = Number(d);
console.log(c); // 0
console.log(d); // 0
var e = true;
var f = false;
e = Number(e);
f = Number(f);
console.log(e); // 1
console.log(f); // 0
var g = null;
g = Number(g);
console.log(g); //0
var h;
h = Number(h);
console.log(h); //NaN
方法二:ParseInt(); parseFloat();
这种方式一般用于字符串,其他类型会优先转换为字符串类型让后再操作
ParsInt:从字符串中取整数 ,从左向右开始检查,遇见非数字的后面全不取。
var i = "123px";
i = parseInt(i);
console.log(i) // 123
parseFloat:从字符串中取出有效的小数 ,从左向右开始检查,遇见非数字的后面全不取。
var j = "12.6px" // 12.6有效,12.6.6无效
j = parseFloat(j);
console.log(j); // 12.6
其他类型
var l = true;
l = parseInt(l);
console.log(l); //NaN 并非是1
// 首先转换为字符串类型:"true" 让后用字符串类型再转换为Number类型:NaN
Boolean
Boolean()函数
转换为Boolean只有一个方法。
转换值
- 数字:0和NaN为false,其他为true
- 字符串:空串为false,其他为true
- null和undefined都是false
- Object(对象)转换也为true
var a = 12;
a = Boolean(a);
console.log(a); //true
var b = -12;
b = Boolean(b);
console.log(b); //true
var d = 0;
d = Boolean(d);
console.log(d); //false
var e = NaN;
e = Boolean(e);
console.log(e); //false
var f = "156";
f = Boolean(f);
console.log(f); //true
var g = "aw+-*&ad";
g = Boolean(g);
console.log(g); //true
var h ="";
h = Boolean(h);
console.log(h); //false