JS共有七大数据类型
JS的数据类型一共分为两大类:原始类型,对象类型。
原始类型包括:Number(数值),String(字符串),boolean(布尔值),Symbol(字符,这个类型是ES6新增的),Null(一般表示无),Undefined(一般表示未定义)
对象类型:除了原始类型的都是对象,对象是键值对的集合,值可以是原始值,也可以是对象
Number
JS不区分整数和浮点数,采用的是IEEE754标准定义的64位浮点格式,数值又称直接量,在数值的前面加负号(-,也叫做一元求反运算符)可以得到它的负值
整数的范围是-2^53~2^53,可以用二进制(0b前缀),八进制(0o前缀),十进制,十六进制(0x前缀,之后的值有0-9和a-f)表示
浮点数值中必须包含一个小数点,小数点后必须包含一位数字,还有一些特殊值,只要来自:全局直接量,Number对象属性,Math对象的属性等,例如:infinity(无穷大),NaN(非数字值),Number.MAX_VALUE(在JS中能表示的最大值),Number.MIN_VALUE(在JS中能表示的最小值),Math.PI(圆周率)
String字符串类型
用来表示文本,可以使用单引号或者双引号,但是必须成对出现,索引从0开始,第一个是0,第二个是1;
在JavaScript代码中,经常会出现HTML字符串,用于HTML标签中的属性值推荐的是双引号,所以JavaScript代码中的字符串推荐使用单引号,例如:var img='<img src="xxx.jpg" title="myPhoto">'
字符串不能直接换行,相拆分的话每行结束加上\n,例如:'ab\nc"',常见的转义字符:\n(换行),\\(斜杠),\'(单引号),\''(双引号),\xnn(十六进制代码表示一个字符,例如:\x41表示A),\unnnn(十六进制)
模版字符串使用的是反引号(重音号),是ES6新增的写法
布尔类型
是计算机科学的逻辑数据类型,只有true和false,JS中的任意值可以转换成布尔值。但是有6个值(假值)会转换成false,分别为:undefined,null,0,-0,NaN,“”(空字符串);
Symbol
ES6新增的原始类型,可用作对象的非字符串属性,它是唯一并且不可改变的
undefined类型
只有一个值undefined,表示未定义或者不存在
unll类型
只有一个值null,表示空值,一般用来表示空对象指针,比如我们声明一个变量,如果在后续的代码中表示一个对象的,那么在声明的同时赋值null
对象类型(object)
除了原始类型的值外,都是对象,例如下面的对象
var a={
name:"hoin",
age:23
}
重要的特殊对象,函数function,数组array,日期Date,正则RegExp,全局Global,错误Error
类型识别
可以使用typeof来检测变量的数据类型,例如:
var abc;
typeof abc;//undefined
var abc=123
typeof abc;//unmber
var abc="abc"
typeof abc//string
var abc=function(){}
typeof abc//function
var abc=true;
typeof abc//boolean
var abc={}
typeof abc//object
var abc=symbol()
typeof abcsymbol