控讨:Javascript 强制类型转换
本节学习Javascript的强制类型转换。使用强制类型转换可以访问特定的值,即使它是另一种类型的。
Javascript 中可用的 3 种强制类型转换如下:
Boolean(value) - 把给定的值转换成 Boolean 型;
Number(value) - 把给定的值转换成数字(可以是整数或浮点数);
String(value) - 把给定的值转换成字符串;
用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。
1,Boolean() 函数
当要转换的值是至少有一个字符的字符串、非 0 数字或对象时,Boolean() 函数将返回 true。如果该值是空字符串、数字 0、undefined 或 null,它将返回 false。
测试 Boolean 型的强制类型转换:
var b2 = Boolean("hello"); //true - 非空字符串
var b1 = Boolean(50); //true - 非零数字
var b1 = Boolean(null); //false - null
var b1 = Boolean(0); //false - 零
var b1 = Boolean(new object()); //true - 对象
2,Number() 函数
Number() 函数的强制类型转换与 parseInt() 和 parseFloat() 方法的处理方式相似,只是它转换的是整个值,而不是部分值。
在之前介绍parseInt() 和 parseFloat() 方法的文章中我们提到,这两个方法只转换第一个无效字符之前的字符串,因此 "1.2.3" 将分别被转换为 "1" 和 "1.2"。
用 Number() 进行强制类型转换,"1.2.3" 将返回 NaN,因为整个字符串值不能转换成数字。如果字符串值能被完整地转换,Number() 将判断是调用 parseInt() 方法还是 parseFloat() 方法。
下表说明了对不同的值调用 Number() 方法会发生的情况:
Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number("1.2") 1.2
Number("12") 12
Number("1.2.3") NaN
Number(new object()) NaN
Number(50) 50
3,String()函数
这种强制类型方法最为简单,因为它可把任何值转换成字符串。
要执行这种强制类型转换,只需要调用作为参数传递进来的值的 toString() 方法,即把 12 转换成 "12",把 true 转换成 "true",把 false 转换成 "false",以此类推。
强制转换成字符串和调用 toString() 方法的唯一不同之处在于,对 null 和 undefined 值强制类型转换可以生成字符串而不引发错误:
var oNull = null;
var s2 = oNull.toString(); //会引发错误
在处理Javascript这样的弱类型语言时,强制类型转换非常有用,不过应该确保使用值的正确。
您可能感兴趣的文章:
控讨:Javascript 强制类型转换
js实现字符串转换成数字的代码
Javascript 字符转换数字的三种方法
JavaScript中字符串、数字类型转换的多种方法
C# 类型转换
js字符串数组相互转换
C 强制类型转换
H5表单验证有哪些方法
解决:threadid=1: thread exiting with uncaught exception (group=0x4001d800)
php中如何强制类型转换