数据类型
在JavaScript中数据类型可以分为两种,一种是基本数据类型,只有一个值;另一种是引用数据类型,可以包含多个值。
{
基
本
数
据
类
型
{
数
字
(
n
u
m
b
e
r
)
字
符
串
(
s
t
r
i
n
g
)
布
尔
(
b
o
o
l
e
a
n
)
未
定
义
(
u
n
d
e
f
i
n
e
d
)
空
值
(
n
u
l
l
)
引
用
数
据
类
型
:
对
象
(
o
b
j
e
c
t
)
\begin{cases} 基本数据类型\begin{cases} 数字(number)\\ 字符串(string)\\ 布尔(boolean)\\ 未定义(undefined)\\ 空值(null) \end{cases}\\ 引用数据类型:对象(object) \end{cases}
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧基本数据类型⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧数字(number)字符串(string)布尔(boolean)未定义(undefined)空值(null)引用数据类型:对象(object)
number
javaScript中的数字类型不区分整型(Int)和浮点型(float)
let m=12;
let n=2.222;
string
字符串是unicode字符子集构成的序列,javaScript中字符串都是用英文单引号双引号括起来的
var m="hello world!";
var n='123'
boolean
布尔值只有两个:true或false,分别表示真和假
var n=true;
var m=false;
undefined
表示未定义的类型,如果一个变量虽然使用var声明了但是没有对这个变量进行赋值,那么对无法判断这个变量的数据类型,此时该变量的数据类型就是undefined
var n;
null
如果定义一个变量时给其赋值null,那么系统就不会给这个变量分配内存空间
// 定义一个空值
var n=null;
object
对象类型是各种值的集合,比如数组、函数等都是对象类型
let a=[]; //定义一个数组对象
数据类型判断
typeof关键字
使用格式
typeof 变量;
示例
typeof 123; //number
typeof "hello"; //string
typeof true; //boolean
typeof []; //object
typeof null; //object
注意使用typeof关键字判断值为null的变量时不会返回null,而是返回object.
这是因为最初的javascript版本中并没有null数据类型,该数据类型实际上是在object类型下定义的,因此typeof关键字判断不出null类型,可以使用另外的数据类型判断方法进行判断
数据类型转换
显示类型转换
使用内置方法对变量的数据类型进行转换,
方法 | 描述 |
---|---|
Number(n) | 将变量n转换为数字类型 |
String(n) | 将变量n转换为字符串类型 |
Boolean(n) | 将变量n转换为布尔类型 |
var a=1,b="123",c="hello";
Number(b); //123
String(a); //"1"
Boolean(c); //true
注意类型转换方法不会改变变量本身的值
隐式类型转换
通过运算的方式
既然是运算必然会涉及到一个数字类型,当另一个值分别为字符串、布尔、未定义、空值时分别会有下面类型转换
变量1 | 变量2 | 变量2转换为 |
---|---|---|
数字 | 字符串 | 数字 |
数字 | 布尔 | 数字(true>1,false>0) |
数字 | 未定义 | |
数字 | 空值 | 数字(null>0) |
示例
2*"3"; //6
2*true; // 2
2*undefined; //NAN
2*null; //0
2+"3"; //23
注意:当运算符号是“+”并且是数字和字符串相加时不会发生类型转换而是将两者变量进行连接