您现在的位置是: 网站首页> 前端技术> JavaScript JavaScript

JavaScript常见数据类型转换

Smile 2019-11-23 21:25:33 Javascript 阅读:2295

简介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)

文章评论

站点信息