您现在的位置是: 网站首页> 前端技术> JavaScript JavaScript
JavaScript常见数据类型转换
Smile 2019-11-23 21:25:33 Javascript 阅读:1845
简介JavaScript 是 Web 的编程语言,是一种弱类型的语言,使用起来非常的灵活。但也有其缺点,变量的类型是不可控,容易产生不可预知的结果等,因此在使用中也经常会对其进行类型转换
Number() 转换为数字, String() 转换为字符串, Boolean() 转化为布尔值
1、首页了解下 JavaScript 有哪些常见的数据类型
- string:字符串
- number:数字
- boolean:布尔
- object:对象
- function:函数
有三种对象类型:
- Object:对象
- Date:日期
- Array:数组
还有两种不能包含值的数据类型:
- null
- undefined
2、先使用 typeof 运算符看看 JavaScript 的变量的一些常见的数据类型
typeof "JavaScript" // 返回 "string"
typeof 666 // 返回 "number"
typeof NaN // 返回 "number"
typeof false // 返回 "boolean"
typeof [1,2,3,4] // 返回 "object"
typeof {name:'YKL', age:18} // 返回 "object"
typeof new Date() // 返回 "object"
typeof function () {} // 返回 "function"
typeof name // 返回 "undefined"
typeof null // 返回 "object"
注意:
- NaN 的数据类型是数值
- 数组的数据类型是对象
- 日期的数据类型是对象
- null 的数据类型是对象
- 未定义变量的数据类型是 undefined
- 尚未赋值的变量的数据类型也是 undefined
如果对象是 Array 或 Date ,就无法通过 typeof 来判断他们的类型,因为都是返回 object
3、constructor 属性返回所有 JavaScript 变量的构造函数
"YKL".constructor // 返回 "function String() { [native code] }"
(666).constructor // 返回 "function Number() { [native code] }"
false.constructor // 返回 "function Boolean() { [native code] }"
[1,2,3,4].constructor // 返回 "function Array() { [native code] }"
{name:'YKL', age:62}.constructor // 返回" function Object() { [native code] }"
new Date().constructor // 返回 "function Date() { [native code] }"
function () {}.constructor // 返回 "function Function(){ [native code] }"
所以就可以通过检查 constructor 属性来确定某个对象是否为数组(是否包含 "Array")
示例:
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
4、JavaScript 类型转换
- 通过使用 JavaScript 函数
- 通过 JavaScript 本身自动转换
(1)把数值转换为字符串
使用全局方法 String() 转换为字符串
String('666') // 从数值文本 666 返回字符串
String(false) // 返回 "false"
String(true) // 返回 "true"
String(Date()) // 返回 "Tue May 05 2020 19:48:34 GMT+0800 (中国标准时间)"
使用方法 toString()
('666').toString() //返回数值666
false.toString() // 返回 "false"
true.toString() // 返回 "true"
Date().toString() // 返回 "Tue May 05 2020 19:48:34 GMT+0800 (中国标准时间)"
(2)把字符串转换为数值
使用全局方法 Number() 可把字符串转换为数字
Number("6.66") // 返回 3.14
Number(" ") // 返回 0
Number("") // 返回 0
Number("66 66") // 返回 NaN
Number(false) // 返回 0
Number(true) // 返回 1
Number(new Date()) // 返回 1588679314218
自动类型转换
5 + null // 返回 5 因为 null 被转换为 0
"5" + null // 返回 "5null" 因为 null 被转换为 "null"
"5" + 2 // 返回 52 因为 2 被转换为 "2"
"5" - 2 // 返回 3 因为 "5" 被转换为 5
"5" * "2" // 返回 10 因为 "5" 和 "2" 被转换为 5 和 2
备注:这篇文章只是收集整理方便自己使用,更多具体详细信息请参考 w3school
很赞哦! (0)