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指向这块开辟的空间;

javascript 变量总大小_javascript

②.引用类型发生赋值的时候,仅仅是引用地址指向了内存中的同一块区域;


javascript 变量总大小_javascript 变量总大小_02

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