肉渣教程

JS 类型转换

上一节 下一节

JavaScript中常用的类型转换方法:

  • Number()方法可将对象转换成数字类型
  • String()方法可将对象转换成字符串类型
  • Boolean()方法可将对象转换成布尔类型

JavaScript数据类型

在JavaScript中,有5种常用的数据类型:

  • string
  • number
  • boolean
  • object
  • function


Object类型中常用有如下三种:

  • Object
  • Date
  • Array


以下两种类型值为空:

  • null
  • undefined

typeof 运算符

通过typeof运算符可以得到对象的数据类型。

typeof "Jerk"                 // 返回"string" 
typeof 6.66                   // 返回"number"
typeof NaN                    // 返回"number"
typeof false                  // 返回"boolean"
typeof [1,2,3,4]              // 返回"object"
typeof {name:'Jerk', age:118} // 返回"object"
typeof new Date()             // 返回"object"
typeof function () {}         // 返回"function"
typeof zhuanfou               // 返回"undefined"
typeof null                   // 返回"object"

运行一下

把数字转成字符串 Number To String

使用String()方法可以将数字转成字符串。

String(x)         // x是一个变量,返回字符串结果
String(666)       // 返回字符串666
String(66.6)      // 返回字符串66.6

运行一下


使用toString()方法也可以达到同样效果。

x.toString()
(666).toString()
(66.6).toString()

运行一下


关于字符串转为数字,更细的操作方法,请查看这里


将布尔型转成字符串

使用String()方法或者toString()方法即可把布尔型转成字符串,很简单。

String(false)      // 返回字符串"false"
String(true)       // 返回字符串"true"
false.toString()   // 返回字符串"false"
true.toString()    // 返回字符串"true"

运行一下

将字符串转成数字

使用Number()方法可将字符串转成数字。若传入空字符串或空格字符串进入此方法中,则返回数字0;若传入无法数字化的字符串,则返回NaN。

Number("6.66")    // returns 3.14
Number(" ")       // returns 0 
Number("")        // returns 0
Number("66 66")   // returns NaN

运行一下


关于把字符串转成数字,还有parseFloat()方法将字符串转成实数、parseInt()方法将字符串转成整数。更多请查看这里


单独的 + 运算符

如下所示,单独的+运算符(左侧为空,右侧放置字符串对象)的作用是把字符串转成数字。

var x = "666";        // x是字符串
var y = + x;          // y是数字

运行一下


若字符串无法被转成数字,则返回NaN(值为空,但对象类型会属于Number数字类型)

var x = "zhuanfou";   // x是字符串
var y = + x;          // y是数字(NaN)

运行一下

把布尔型转换成数字

通过Number()方法可以将布尔型直接转成数字,false会被转成0,true会被转成1。

Number(false)     // 返回0
Number(true)      // 返回1

运行一下

运算中自动进行类型转换

运算中,有时会自动进行类型转换。

7 + null    // 返回 7         因为 null 会被自动转成 0
"7" + null  // 返回 "7null"   因为 null 会被自动转成 "null"
"7" + 2     // 返回 "72"      因为 2 会被自动转成 "2"
"7" - 2     // 返回 5         因为 "7" 会被自动转成 7
"7" * "2"   // 返回 14        因为 "7"和"2" 分别会被自动转成 7和2
"7" / "2"   // 返回 3.5       因为 "7"和"2" 分别会被自动转成 7和2

运行一下

JavaScript数据类型转换 - 速记表

对象原值 转成数字(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
"nine" NaN "nine" true
[] 0 "" true
[20] 20 "20" true
[1,20] NaN "1,20" true
["反清", "复明"] NaN "反清,复明" true
function(){} NaN "function(){}" true
{} NaN "[object Object]" true
null 0 "null" false
undefined NaN "undefined" false

JS 类型转换

上一节 下一节