简介
JavaScript 的数据类型分为两种:基本数据(原始数据)和引用数据(对象类型);
基本数据类型有:String、Number、Null、Undefind、Boolean;
引用数据类型也就是对象类型Object,比如:Object、Array、Function、Data等。
基本数据类型
特点:
- 按值访问,可以操作保存在变量中的实际值
- 值是不可变的
- 不可添加属性和方法
- 赋值是简单的赋值(如果从一个变量向另一个变量赋值基本类型的值,会在变量对象上创建一个新值,然后把该值赋值到位新变量分配的位置上)
- 基本类型的比较,是值的比较
- 值在内存中占据固定大小的空间,被保存在栈内存中。(从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本);栈区包括了变量的标识符和变量的值
具体介绍:
-
Number
-
数字类型包含整数和浮点数字。
-
浮点数会自动转化成整数。
-
浮点数的最高精度是17位,浮点数计算会产生舍入误差问题
-
NaN:非数字类型。1、任何关于NaN的操作都会返回NaN;2、NaN不等于自身。
-
isNaN(),用于判断是否是非数字类型。
-
Number(),转型函数,可以用于任何数据类型。
-
parseInt(),将值转换为整型
-
parseFloat,将值转换为浮点型
-
-
String
- 单引号和双引号皆可
- length属性,可获取字符串长度
- 值不可改变,要改变一个字符串的值,得先销毁原字符串,再用另一个包含新值的字符串去填充该字符串
- String(),适用于任何数据类型
- toString(),null,defined没有toString()方法
-
Boolean
- 有两个值:true、false
- Boolean(),将某个值转换成布尔值
-
Null 只有一个值就是null。Null被看做空指针对象,也是空的对象引用;typeof Null将返回Object。如果你定义一个变量将会当对象使 用,最好设置初始值为null。作为对象原型链的终点。
-
Undefind
- 只有一个值就是undefined。var声明变量初始化未赋值就是undefined。
- undefined与null相比较,ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的。
引用类型
特点:
- 值是可以改变的
- 可以添加属性和方法
- 赋值是对象引用,引用类型的赋值其实是对象保存在栈区地址指针的赋值
引用类型保存在变量中的是对象在堆内存中的地址,所以,与基本数据类型的简单赋值不同,这个值的副本实际上是一个指针,而这个指针指向存储在堆内存的一个对象.那么赋值操作后,两个变量都保存了同一个对象地址,而这两个地址指向了同一个对象.因此,改变其中任何一个变量,都会互相影响。
-
比较是引用的比较
引用类型的比较是引用的比较,保存在栈区中的指向堆内存的地址却是不同的.
-
同时保存在栈区和堆区中
引用类型的存储需要在内存的栈区和堆区共同完成,栈区保存变量标识符和指向堆内存的地址
具体介绍
- Object
- constructor,构造函数属性,可确定当前对象的构造函数
- hasOwnProperty,判断属性是否存在于当前对象实例中
- 关于Object的内容(Array、Object等)后面在介绍
参考文章: mp.weixin.qq.com/s/YMpKnUUKP… www.jb51.net/article/101…