强制类型转换主要指将其他数据类型转换为 String Number Boolean
一、强制类型转换为String
将其他数据类型转换为string主要有两种方法
方式一
调用被转换类型的toString()方法
该方法不会影响原变量,它会将转换的结果返回
null和undefined没有toString方法( 如果调用会报错 )
var a=123; a=a.toString(); b=true; b=b.toString(); console.log(typeof a);
console.log(a); console.log(typeof b); console.log(b);
结果
方式二
调用 String()函数,并将被转换数据作为参数传递给函数
对于Number和Boolean实际上调用 toString()
对于null和undefined就不会调用 (它直接将null转换为“null”,将undefined转换为 “undefined”)
<script> a=undefined; a=String(a); b=null; b=String(b); console.log(typeof
a); console.log(a); console.log(typeof b); console.log(b); </script>
结果
二、强制类型转换为Number
将其他数据类型转换为number主要有两种方法
方法一 使用Number() 函数
字符串转数值
* 若纯数字字符串则转换为数字
* 若字符串中有非数字内容转换为NaN
* 若是空或全是空格则为 0
布尔转数字
* true转成1
* false转成0
null转成0
undefined转成NaN
a = false; a=Number(a); console.log(typeof a); console.log(a); b=null;
b=Number(b); console.log(typeof b); console.log(b); c=undefined; c=Number(c);
console.log(typeof c); console.log(c); d="123.456"; d=Number(d);
console.log(typeof d); console.log(d);
结果
转换方式二 (这种方式专门对付字符串)
* parseInt()将一个字符串转换为一个整数
* parseFloat()将一个字符串转换为一个浮点数 a="198.34"; a=parseInt(a); console.log(typeof
a); console.log(a); b="198.34px"; b=parseFloat(b); console.log(typeof b);
console.log(b);
结果
二、强制类型转换为Boolean
将其他数据类型转换为boolean主要有两种方法
方法一 使用Boolean()函数
* 数字转布尔值除了0和NaN都是true
* 字符串转布尔值 除了 空格 都是true
* null转布尔值为false
* undefined转布尔值为false
* 对象也会转换为true
var a = 123; a=Boolean(a); console.log(typeof a); console.log(a); var b =
"123"; b=Boolean(b); console.log(typeof b); console.log(b); var c = null;
c=Boolean(c); console.log(typeof c); console.log(c); var d = undefined;
d=Boolean(d); console.log(typeof d); console.log(d);
结果
方法二 对任意非布尔值进行两次非运算