一、JavaScript 的数据类型共有七种。
补充:
1、ES6 新增了第七种 Symbol 类型的值
2、所有引用类型都是对象。
二、数据类型分为两大类:基础数据类型、引用数据类型
1、基础数据类型:Number、String、 Boolean、Null、Undefined、Symbol
a、Number:数值(整数、小数)、NaN、Infinity
b、String:'123'(单引号)、''123''(双引号)、\n(转义字符)
c、 Boolean:true/非0即true、false\0
d、Null:空对象,是objeect类型
e、Undefined:未定义的(初始化未赋值)
f、Symbol :表示独一无二的值,最大的用法是用来定义对象的唯一属性名。
2、引用数据类型:Object
a、Object:是一种无序名值对的集合。包括了:Function(一等公民)、Array、Date、Math 、RegExp等等皆为对象
b、创建对象的方法有两种:分别为new一个对象跟字面量创建对象
let obj = new Object()
obj.name = 'objName';
obj.age = 18;
obj.sayName = function(){
console.log(this.name)
}
等价于:
let obj = {
name:'objName',
age:18,
sayName(){
console.log(this.name)
}
}
三、基础类型都是保存在栈当中,引用类型都是保存在堆当中
栈stack:(井口存放)先进后出,栈是向低地址扩展的数据结构,是一块连续的内存区域。由系统自动分配及释放内存空间,空间较小,分配效率速度较快。
堆heap:(队列优先)先进先出,堆是向高地址扩展的数据结构,是不连续的内存区域。由new申请的动态分配的内存空间也不会自动释放,空间比较灵活也比较大,分配效率速度比较慢。