Number() 转换为数字,String() 转换为字符串,Boolean() 转换为布尔值。
JavaScript 数据类型
JavaScript 有五种不同的数据类型。
细绳
数字
布尔值
目的
功能
三种对象类型:
目的
日期
大批
两种不包含值的数据类型:
无效的
不明确的
操作员类型
您可以使用typeof 运算符检查JavaScript 变量的数据类型。
例子
typeof 'John' //返回一个字符串
typeof 3.14 //返回一个数字
typeof NaN //返回一个数字
typeof false //返回一个布尔值
typeof [1,2,3,4] //返回对象
typeof {name:'John',age:34} //返回对象
typeof new Date() //返回对象
typeof function () {} //返回函数
typeof myCar //返回未定义(如果myCar 未声明)
typeof null //返回对象
请注意:
NaN 的数据类型是数值
数组的数据类型是object
日期数据类型是对象
null的数据类型是对象
未定义变量的数据类型未定义
如果对象是JavaScript Array 或JavaScript Date,则无法通过typeof 确定它们的类型,因为两者都返回Object。
构造函数属性
constructor 属性返回所有JavaScript 变量的构造函数。
例子
'John'.constructor //返回function String() { [native code] }
(3.14).constructor //返回函数Number() { [原生代码] }
false.constructor //返回function Boolean() { [native code] }
[1,2,3,4].constructor //返回function Array() { [native code] }
{name:'John',age:34}.constructor //返回function Object() { [native code] }
new Date().constructor //返回function Date() { [原生代码] }
function () {}.constructor //返回function Function(){ [原生代码] }
您可以使用构造函数属性来检查对象是否是数组(包含字符串“Array”):
例子
函数isArray(myArray) {
myArray.constructor.toString().indexOf('Array') 返回-1。
}
您可以使用构造函数属性来检查对象是否是日期(包含字符串“Date”):
例子
函数isDate(myDate) {
myDate.constructor.toString().indexOf('Date') 返回-1。
}
JavaScript 类型转换
JavaScript 变量可以转换为新变量或其他数据类型。
使用JavaScript 函数
JavaScript 本身自动转换
将数字转换为字符串
全局方法String() 可以将数字转换为字符串。
此方法适用于各种数字、字符、变量和表达式。
例子
String(x) //将变量x 转换为字符串并返回
String(123) //将数字123 转换为字符串并返回
String(100 + 23) //将数值表达式转换为字符串并返回
Number 方法toString() 具有相同的效果。
例子
x.toString()
(123).toString()
(100 + 23).toString()
您可以在“数值方法”一章中找到更多将数字转换为字符串的方法。
方法说明toExponential() 将对象的值转换为指数表示法。 toFixed() 将数字转换为字符串,结果小数点后具有指定的位数。 toPrecision() 将数字格式化为指定长度。 将布尔值转换为字符串
全局方法String() 可以将布尔值转换为字符串。
字符串(假)//返回“假”
String(true) //返回'true'
布尔方法toString() 具有相同的效果。
false.toString() //返回'false'
true.toString() //返回'true'
将日期转换为字符串
全局方法String() 可以将日期转换为字符串。
String(Date()) //返回2014 年7 月17 日星期四15:38:19 GMT+0200(西欧夏令时间)
Date 方法toString() 具有相同的效果。
例子
Date().toString() //返回2014 年7 月17 日星期四15:38:19 GMT+0200(西欧夏令时间)
您可以在“日期方法”一章中找到更多将日期转换为字符串的函数。
方法说明getDate() 从Date 对象返回日期(1-31)。 getDay() 从Date 对象返回星期几(0-6)。 getFull Year() 从Date 对象中返回4 位数字形式的年份。 getHours() 返回Date 对象的小时(0-23)。 getMilliseconds() 返回Date 对象的毫秒(0-999)。 getMinutes() 返回Date 对象的分钟(0-59)。 getMonth() 从Date 对象返回月份(0-11)。 getSeconds() 返回Date 对象的秒(0-59)。 getTime() 返回自1970 年1 月1 日以来的毫秒数。 将字符串转换为数字
全局方法Number() 可以将字符串转换为数字。
包含数字的字符串(例如“3.14”)将转换为数字(例如3.14)。
空字符串会转换为0。
其他字符串将转换为NaN(不是数字)。
Number('3.14') //返回3.14
Number(' ') //返回0
Number('') //返回0
Number('99 88') //返回NaN
您可以在“数字方法”一章中找到更多将字符串转换为数字的方法。
方法说明parseFloat() 解析字符串并返回浮点数。 parseInt() 解析字符串并返回整数。 一元运算符+
运算符+ 可用于将变量转换为数字。
例子
var y='5' //y 是一个字符串。
var x=+ y //x 是一个数字。
如果变量无法转换,则该变量仍为数字,但值变为NaN(不是数字)。
例子
var y='John' //y 是一个字符串。
var x=+ y //x 是一个数字(NaN)。
将布尔值转换为数字
全局方法Number() 将布尔值转换为数字。
Number(假) //返回0
Number(true) //返回1
将日期转换为数字
全局方法Number() 将日期转换为数字。
d=新日期();
Number(d) //返回1404568027739
日期方法getTime() 具有相同的效果。
d=新日期();
d.getTime() //返回1404568027739
自动转换型
当JavaScript 尝试操作“错误”的数据类型时,它会自动将其转换为“正确”的数据类型。
以下输出不是我所期望的。
5 + null //将5 null 转换为0并返回
'5' + null //'5null' 将null 转换为'null' 并返回
'5' + 1 //'51' 将1 转换为'1' 并返回
'5' - 1 //返回4 将'5' 转换为5
自动转换为字符串
当您尝试打印对象或变量时,JavaScript 会自动调用变量的toString() 方法。
document.getElementById('demo').innerHTML=myVar;
//if myVar={name:'Fjohn'} //toString 转换为'[object Object]'
//if myVar=[1,2,3,4] //toString 转换为'1,2,3,4'
//if myVar=new Date() //toString 转换为“Fri Jul 18 2014 09:08:55 GMT+0200”
数字和布尔值也经常相互转换。
//if myVar=123 //toString 转换为'123'
//if myVar=true //toString 转换为'true'
//if myVar=false //toString 转换为'false'
如果还是不明白,请在下方留言或者在QQ群308855039与我讨论。让我们一起飞吧!
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。