JS中的数据类型
JavaScript(以下简称js)的数据类型共有七种:
- Number
- String
- Boolean
- Null
- Undefined
- Object
- Symbol
以上数据类型又分为两种:
- 基本类型,指ECMAscript的五种简单数据类型,分别是Number,String,Boolean,Undefined,Null。和ES6中新增加的Symbol类型
- 引用类型,指广义下的Object,而Object类型下,又有着Array类型和function类型,他们也是引用类型
1、Number
Number类型包含了整数,浮点数,和NaN三种不同的值。
整数:整数包含正整数和负整数。
浮点数:
0.1 + 0.2 === 0.3 // false
如何正确理解精度丢失,请转到掘金网友changli2018写的【JS浮点数存储精度丢失原理】
NaN:NaN全称是Not a Number,同样也是一种number类型的值
console.log(typeof(NaN)); //Number
2、String
String 类型用于表示由零或多个 16 位 Unicode 字符组成的字符序列,即字符串
字符串允许用下标访问
var a="jirengu"
a[0] // j
a[1] // i
3、Boolean
Boolean类型只有两个值:ture和false。
另外在JS所有值中,除特定值之外的其他所有值都默认为ture,特定值有一下几种:
- 空字符串 “”
- NaN
- 数字0
- undefined
- null
- 布尔值false
4、Null
null表示"没有对象",即该处不应该有值。典型用法是:
- 作为函数的参数,表示该函数的参数不是对象。
- 作为对象原型链的终点。
Object.prototype.__proto__
//null
5、Undefined
undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:
- 变量被声明了,但没有赋值时,就等于undefined
var i;
i // undefined
- 调用函数时,应该提供的参数没有提供,该参数等于undefined
function f(x){console.log(x)}
f() // undefined
- 对象没有赋值的属性,该属性的值为undefined
var o = new Object();
o.p // undefined
- 函数没有返回值时,默认返回undefined
var x = f();
x // undefined
6、Symbol
Symbol类型是 ES6 新增的一种原始数据类型,它的字面意思是:符号、标记。代表独一无二的值 。
详见Symbol的MDN
7、Object
object类型是一种引用类型,其特点在于,其内容保存在heap(堆内存)中,新建变量时,变量保存的是一个在steak(栈内存)中的地址,访问这个变量时,通过引用该地址的方式找到所保存的内容。
保存内容是以key:value 的形势存储的,key只能是字符串,若传入其他值,则会转换成字符串再保存.
而value能保存各种类型的值,在此不做列举。