1、基本数据类型——值类型(也称为原始值类型或简单数据类型):
1.Number:数字类型,可以是整数或浮点数。
2.String:字符串类型,用于表示文本数据。
3.Boolean:布尔类型,true 或 false。
4.Null:空,表示空值或非对象值,它是一个特殊的值用来表示尚未定义或无意义的值。
5.Undefined:未定义,表示变量已声明但未赋值,或者访问不存在的对象属性时返回的值。
6.Symbol:独一无二的值,常用于标识符,保证在全局环境中不会重复。
2、复杂数据类型——对象类型(也称引用数据类型):
1.Object:类型是所有对象的基础,包括数组和函数也是对象的一种。
2.Array:数组类型,有序的元素列表,可以包含任何数据类型。
3.Function:函数类型,JavaScript 中的函数实际上是对象,它们可以被当作值来存储和传递,并且具有可执行的能力。
PS:
1、如何区分数组和普通对象:
尽管数组是特殊的对象,但typeof操作符并不能区分数组和普通对象,因为它们都返回 “object”所以可以采取以下方式!
1.Array.isArray()
方法:
Array.isArray([]); // 返回 true,说明是数组
Array.isArray({}); // 返回 false,说明不是数组
2、instanceof
操作符:
var arr = [];
arr instanceof Array; // 返回 true,说明是数组
var obj = {};
obj instanceof Array; // 返回 false,说明不是数组
3、constructor
属性:
var arr = [];
arr.constructor === Array; // 返回 true,说明是数组
var obj = {};
obj.constructor === Object; // 返回 true,说明是对象
4、 Object.prototype.toString.call()
方法:
Object.prototype.toString.call([]); // 返回 "[object Array]"
Object.prototype.toString.call({}); // 返回 "[object Object]"
综上所述:实际开发中最常用且可靠的区分数组和对象的方式是使用 Array.isArray()函数。在某些情况下,结合 Object.prototype.toString.call() 也可以作为辅助手段来判断更复杂的类型情况。