1、5种基本类型
类型表达式 | 类型描述 |
boolean | 布尔,值为 false或者 true |
number | 数字,值为任何整型或者浮点数值 |
string | 字符串,值由单引号或者双引号括出的单个字符或者连续字符(JavaScript不区分字符 |
null | 空类型,该原始类型仅有一个值:null |
undefined | 未定义,该原始类型仅有一个值:undefined(undefined会被赋给一个还没有初始化的变 |
2、引用类型
引用类型是在JavaScript中找到最能接近类的东西。引用值是引用类型的实例,也是对象的同义词。属性包含键(始终是字符串)和值。如果一个属性的值是函数,它就被称为方法。JavaScript中函数其实是引用值,除了函数可以运行以外,一个包含数组的属性和一个包含函数的属性没有区别。
创建引用类型的两种方式看下面的一段代码:
//第一种使用new操作符
var obj1 = new Object();
//第二种
var obj3 = {}
以上两种创建对象的方式并没有本质的区别,是等价的。
那么当我们创建了一个对象,且发生了赋值的时候,在内存中发生了什么呢?
①.看下图:当发生了new
操作的时候,先在内存中开辟一块空间,存放创建的对象,并且使obj1
指向这块开辟的空间;
②.引用类型发生赋值的时候,仅仅是引用地址指向了内存中的同一块区域;
null
。让"垃圾回收"器在特定的时间对那一块内存进行回收。
3、内建类型
JavaScript中的內建类型如下:
类型 | 类型描述 |
Array | 数组类型,以数字为索引的一组值的有序列表 |
Date | 日期和时间类型 |
Error | 运行期错误类型 |
Function | 函数类型 |
Object | 通用对象类型 |
RegExp | 正则表达式类型 |
new
操作符和构造函数显式创建对象的情况下生成引用值。(包括字符串,数字,布尔,空类型和未定义);
4、函数
创建函数的三种方式:
//第一种函数声明
function abc(){
console.log(1);
}
//使用构造函数的形式
var value = new Function('','console.log(1)');
//函数表达式
var a = function(){
console.log(1);
};
使用构造函数的方式创建函数,不易读,且调试不方便,不建议使用这种方式创建函数。
5、正则表达式
在JavaScript中使用正则表达式有两种方式:
//使用字面形式
var a1 = /\d+/g;
//使用构造函数的形式
var a2 = new RegExp('\\d+','g');
在JavaScript中建议使用字面形式的正则表达式,因为不需要担心字符串中的转义字符。比如上面示例代码中字面形式使用
\d
而构造函数使用的是
\\d
;