1、判断JavaScript 变量的数据类型
使用 typeof 操作符来查看 JavaScript 变量的数据类型。
typeof "cjavpay" // 返回 string typeof 3.14 // 返回 number typeof NaN // 返回 number typeof false // 返回 boolean typeof [1,2,3,4] // 返回 object typeof {name:'cjavapy', url:34} // 返回 object typeof new Date() // 返回 object typeof function () {} // 返回 function typeof url // 返回 undefined (url 如果未声明) typeof null // 返回 object
注意:对象是 JavaScript Array 或 JavaScript Date ,我们就无法通过 typeof
来判断他们的类型,因为都是 返回 object
。
2、JavaScript 数据类型转换
JavaScript 变量可以转换为新变量或其他数据类型:通过使用 JavaScript 函数,通过 JavaScript 自身自动转换。
1)将数字转换为字符串
全局方法 String()
可以将数字转换为字符串。该方法可用于任何类型的数字,字母,变量,表达式:
例如,
String(x) // 将变量 x 转换为字符串并返回 String(520) // 将数字 123 转换为字符串并返回 String(13 + 14) // 将数字表达式转换为字符串并返回
可以使用.toString()
方法,将数字转成字符串:
例如,
x.toString() (123).toString() (100 + 23).toString()
相关文档:JavaScript(JS) Number 对象的属性和方法
2)将布尔值转换为字符串
全局方法 String()
可以将布尔值转换为字符串。
例如,
String(false) // 返回 "false" String(true) // 返回 "true"
可以使用.toString()
方法,将布尔值转成字符串:
false.toString() // 返回 "false" true.toString() // 返回 "true"
3)将日期转换为字符串
使用Date()
方法返回字符串:
Date() //"Sun Sep 05 2021 19:51:20 GMT+0800 (中国标准时间)"
注意:前边没有new关键字,加上new Date()返回的是"object"。
使用String()
方法可以使用将日期对象转换为字符串:
String(new Date()) //"Sun Sep 05 2021 19:53:45 GMT+0800 (中国标准时间)"
也使用 toString()
方法,将日期对象转换为字符串:
obj = new Date() obj.toString() //"Sun Sep 05 2021 19:53:45 GMT+0800 (中国标准时间)"
相关文档:JavaScript(JS) Date 对象属性和方法
4)将字符串转换为数字
全局方法 Number()
可以将字符串转换为数字。
字符串包含数字(如 "5.36"
) 转换为数字 (如 5.36
).
空字符串转换为 0
。
其他的字符串会转换为 NaN (非数字)。
Number("6.17") // 返回 6.17 Number(" ") // 返回 0 Number("") // 返回 0 Number("13 14") // 返回 NaN
参考JavaScript(JS) Number 对象的属性和方法 中字符串转为数字的方法:
字符串转为数字的方法:
方法 | 描述 |
parseFloat() | 解析一个字符串,并返回一个浮点数。 |
parseInt() | 解析一个字符串,并返回一个整数。 |
5)+ 可用于将变量转换为数字
var y = "5"; // y 是一个字符串 var x = + y; // x 是一个数字 var y = "cjavapy"; // y 是一个字符串 var x = + y; // x 是一个数字 (NaN)
注意:如果变量不能转换,它仍然会是数字类型,但值为 NaN
6)将布尔值转换为数字
可以使用Number()
方法,将布尔转换为数字,例如:
Number(false) // 返回 0 Number(true) // 返回 1
7)将日期转换为数字
可以使用Number()
和getTime()
方法,将日期转换为数字,
例如,
d = new Date(); Number(d) // 返回 1630843627603 d = new Date(); d.getTime() // 返回 1630843639558
8)自动转换类型
当加号两侧为数值是,则进行相加运算。当加号一侧有字符串是,则进行拼接,
例如,
8 + null // 返回 5 null 转换为 0 "8" + null // 返回"5null" null 转换为 "null" "3" + 1 // 返回 "31" 1 转换为 "1" "12" - 1 // 返回 11 "12" 转换为 12 new Date()+"www.cjavapy.com" // "Sun Sep 05 2021 20:14:27 GMT+0800 (中国标准时间)www.cjavapy.com"
注意:当输出一个对象或一个变量时 JavaScript 会自动调用变量的 toString()
方法。
9)使用不同的类型数据转换为数字(Number), 字符串(String), 布尔值(Boolean)
如下表,
原始值 | 转换为数字 | 转换为字符串 | 转换为布尔值 |
false | 0 | "false" | false |
true | 1 | "true" | true |
0 | 0 | "0" | false |
1 | 1 | "1" | true |
"0" | 0 | "0" | true |
"000" | 0 | "000" | true |
"1" | 1 | "1" | true |
NaN | NaN | "NaN" | false |
Infinity | Infinity | "Infinity" | true |
-Infinity | -Infinity | "-Infinity" | true |
"" | 0 | "" | false |
"20" | 20 | "20" | true |
"cjavapy" | NaN | "cjavapy" | true |
[ ] | 0 | "" | true |
[20] | 20 | "20" | true |
[10,20] | NaN | "10,20" | true |
["cjavapy"] | NaN | "cjavapy" | true |
["cjavapy","javascript"] | NaN | "cjavapy,javascript" | true |
function(){} | NaN | "function(){}" | true |
{ } | NaN | "[object Object]" | true |
null | 0 | "null" | false |
undefined | NaN | "undefined" | false |