数据类型转换
JavaScript是一种无类型的语言,这种“无类型”并不是指JavaScript没有数据类型,而是指JavaScript是一种松散型。因此,在JavaScript中定义一个变量时,不需要制定变量的数据类型,这就使JavaScript可以很方便、灵活地进行隐式类型转换。所谓隐式类型转换就是不需要进行定义,JavaScript会自动将某一个类型的数据转换成另一个类型的数据。JavaScript中除了可以隐式转换数据类型外,还可以显式转换数据类型。常用的类型转换方法有一下几种:
转换成字符串
JavaScript中3种主要的原始值布尔值、数字、字符串及其他对象都有toString()方法,可以把他们的值转换成字符串。
var num=25;
alert(num.toString());//输出 “25”
转换成数字
ECMAScript提供了两种把非数字的原始值转换成数字的方法,即parseInt()和parseFloat().只有对字符串调用这些方法才能正确运行,其他类型返回的都是NaN.
①parseInt()方法。
parseInt()方法用于将字符串转换为整数,其格式为:
parseInt(numString,[radix]);
说明:
a.第一个参数为必选项,用来指定要转化为证书的字符串。
parseInt("754abc87); // 返回值为754
parseInt("test456); //返回值为NaN 但数据类型是Number
b.第二个参数为可选项,使用该参数的parseInt()方法能够完成八进制、十六进制等数据的转换。其中[radix]表示要将numString作为几进制数进行转换,当省略时,默认将第一个数按十进制转换。
parseInt("100abc",8) //返回值为64
②parseFloat()方法。
parseFloat()方法用于将字符串转换为浮点数,其格式为:
parseFloat(numString);
parseFloat("19.32te"); //返回值为19.32
基本数据类型转换
在JavaScript中可以使用下面3个函数将数据转换成数字型、布尔型和字符串型。
①Boolean(value):
把值转换成Boolean类型。如果要转换的值value为“至少有一个字符的的字符串”、“非0的数字”、或“对象”,那么Boolean()将返回true;如果要转换的值value为“空字符串”、“数字0”、undefined、null,那么Boolean()将返回false.
Boolean("");//返回false
Boolean("-1");//返回true
Boolean("new Object()");//返回true
false、undefined 、null、0、”” 为 false
true、1、”somestring”、[Object] 为 true
②Number(value):
把值转换成数字(整型数或浮点数)。Number()与parseInt()、parseFloat()类似,区别在于Number()转换的是整个值,而parseInt()、parseFloat()则可以只转换开头部分。
Number("1.2.3"); //返回NaN
parseInt("1.2.3"); //返回1
parseFloat("1.2.3"); //返回1.2
③String(value):
把值转换成字符串。String()与toString()方法有些不同,区别在于对null或undefined值用String()进行强制类型转换可以生成字符串而不引发错误。
var myNum;
var t1=String(myNum); //t1的值为undefined
var t2=myNum.toString();//这里会报错