JavaScript有五种基本数据类型:undefined,null,Boolean,Number,String,Bigint,Symbol。JavaScript的变量是松散型变量,松散型指的是变量可以存任何类型数据,所谓变量只是仅仅是存值的占位符而已。数据类型动态改变。本文主要介绍JavaScript(JS) 数据类型转换。

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


推荐文档