精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
JavaScript支持字符串型、数字型和布尔型等数据类型,当这些数据类型之间需要进行运算时,就必须将不同的数据类型转换为相同的数据类型。
在JavaScript中可以使用Number()、Boolean()和String()函数来将数据转换成数字型,布尔型和字符串型,请看以下代码:
var s ="1"
var i = Number(s) +2;
document.write(i);
以上代码的输出结果为3,在以上代码中,Number()的作用是将字符1转换为数字1。Boolean()与String()函数的使用方法与Number()函数的使用方法类似,在此就不再赘述了。除了使用Number()。Boolean()和Number()函数来显式转换类型之外,还可以使用以下3种基本类型的转换方式。
(1)数字型转换字符串型,可以将其与一个空字符串相连。以下代码可以将数字型数据转换成字符串数据:
var s = 123 + " ";
var str = " " + 123;
(2)字符串型转换成数字型,可以将其减0.以下代码可以将字符串型数据转换成数字型数据:
var s = "123";
var sa = s - 0;
(3)字符串型或数字型转换成布尔型,可以将其连续使用两次“!”运算符,以下代码可以将数据转换成布尔型数据:
var s = "true";
if (!!s)
{
documern.write(s)
}
var i = 1;
if(!!i)
{
document.write(i)
}
显式转换数据类型可以替换代码的可读性,显式类型转换的方法有以下两种。
在JavaScript中很多对象中都有toString()方法可以将对象直接转换成字符串。例如以下代码:
var arr = ["JavaScript","VBScript"."Script"];
document.write(arr.toString());
以上代码会将数组转换成字符串后输出,输出结果如下所示:
JavaScript,VBScript,Script
除了数组对象之外,还有Data对象,Error对象,Number对象和function函数等,都可以使用toString()方法来将对象转换成字符串。
注意:对象不能直接转换成数字型,如果要将对象转换成数字型数据,可以先将其转换成字符型数据,再将字符型数据转换成数字型数据。
JavaScript是一种无类型的语言,这种无类型并不是指JavaScript没有数据类型,而是指JavaScript是一种松散类型,动态类型的语言,因此,在JavaScript中定义一个变量时,不需要指定变量的数据类型,这就使得JavaScript可以很方便灵活地进行隐式类型转换。
1, “+”运算符
var a = 11, b = '22';var c = a + b;
这里引擎将会先把a变成字符串"11"再与b进行连接,变成了"1122"。有人会有疑问,为什么不把b变成数字22再进行算术加运算呢,这样的话c就是33了。没有为什么,当运算符“+”两边一个是数字类型,一个是字符串类型时,js引擎规定进行字符串连接运算而非算术加运算。利用运算符“+”这个特性,可以很方便的将Number转换成String。如
var a = 11;alert(typeof a); //-->number
a = a + '';
alert(typeof a); //-->string
2,“-”运算符
“-”可以是一元运算符(取负),也可以是二元(减法运算)的。如
var a = 11, b = '5';var c = a - b;
alert(typeof c); //--> number
这里与上面的“+”相反,会把字符串b隐式的转换成数字5再进行算术减法运算。利用这个特性,可以很方便的将String转换成Number
var a = '11';
a = a - '';
alert(typeof a);// -->number
var obj = {name:'jack'}
if(obj){
//do more
}
这里会把obj隐式的转换成Boolean类型
2,whilevar obj = {name:'jack'} while(obj){ //do more}
同if