JavaScript数据类型
5种数据类型:
- string
- number
- boolean
- object
- function
2种不包含任何值的数据类型:
- null
- undefined
3种对象类型:
- Object
- Date
- Array
注:可以使用typeof操作符查看变量数据类型,但如果对象是 JavaScript Array 或 JavaScript Date ,我们就无法通过 typeof 来判断他们的类型,因为都是 返回 Object
typeof NaN //number
typeof [1,2,3] //object
typeof new Date() //object
typeof null //object
typeof undefined //undefined
JavaScript类型转换
- Number() 转换为数字
- String() 转换为字符串
- Boolean() 转换为布尔值
- 通过使用JavaScript函数
- 通过JavaScript自身自动转换
将数字/布尔值/日期转换为字符串:
- 全局方法:String()
数字转换为字符串:
var x = 123;
String(x) //123,将变量x转换为字符串
String(123) //123,将数字123转换为字符串
String(100+23) //123,将数字表达式转换为字符串
布尔值转换为字符串:
String(false) //"false"
String(true) //"true"
日期转换为字符串:
String(Date()) //Thu Apr 25 2017 19:40:19 GMT+0200 (W. Europe Daylight Time)
- Number/Boolean/Date方法:toString()
数字转换为字符串:
var x = 123;
x.toString() //123,将变量x转换为字符串
(123).toString() //123,将数字123转换为字符串
(100+23).toString() //123,将数字表达式转换为字符串
布尔值转换为字符串:
false.toString() //"false"
true.toString() //"true"
日期转换为字符串:
Date().toString() //Thu Apr 25 2017 19:40:19 GMT+0200 (W. Europe Daylight Time)
把字符串/布尔值/日期转换为数字:
- 全局方法:Number()
字符串转换为数字:
Number("21") //21,将字符串转换为数字
Number(" ") //0,空字符串转换为0
Number("") //0
Number(20 21) //NaN,其他字符串转换为NaN(不是个数字)
布尔值转换为数字:
Number(false) //0
Number(true) //1
日期转换为数字:
Number(new Date()) //1493128272136
- 日期方法:getTime()
new Date().getTime() //1493128272136
自动转换类型
JavaScript会将一个“错误”的数据类型自动转换为“正确”的数据类型
如.
5 + null // 返回 5 null 转换为 0
"5" + null // 返回"5null" null 转换为 "null"
"5" + 1 // 返回 "51" 1 转换为 "1"
"5" - 1 // 返回 4 "5" 转换为 5
自动转换为字符串
尝试输出一个对象或一个变量时,JavaScript会自动调用变量的toString()方法
输出myVar时:
if myVar = {name:"Nico"} // toString 转换为 "[object Object]"
if myVar = [1,2,3,4] // toString 转换为 "1,2,3,4"
if myVar = new Date() // toString 转换为 "Thu Apr 25 2017 22:06:55 GMT+0200"
数字和布尔值之间相互转换:
if myVar = 123 // toString 转换为 "123"
if myVar = true // toString 转换为 "true"
if myVar = false // toString 转换为 "false"