JavaScript变量包含两种类型的值:基本类型值和引用类型值。


目录



一.基本类型值:

概念:

  1. 基本类型值指的是保存在栈内存中的简单数据段;
  2. 基本类型值按值访问,操作的是他们实际保存的值;
  3. 基本类型值从一个变量向一个变量复制时,会在栈中创建一个新值,然后把值复制到为新变量分配的位置上,改变源数据不会影响到新的变量(互不干涉);

1.Boolean:

概念:
布尔表示一个逻辑实体,可以有两个值:​​​true​​​ 和 ​​false​​​;
JavaScript基础知识-JS数据类型_引用类型

2.Null:

概念:

Null类型只有一个值:null是一个JavaScript字面量表示空值(null or an “empty” value),即>没有对象被呈现(no object value is present).它是JavaScript原始值之一。

3.undefined:

概念:

  1. 在JavaScript中,undefined这个词有多重含义.首字母大写的Undefined表示的是一种数据类型;
  2. 小写的undefined表示的是属于这种数据类型的唯一的一个值;
  3. 但这两种undefined都只能存在于文档或规范中,不能存在于JavaScript代码中;
  4. 在JavaScript代码中,你看到的undefined最有可能是全局对象的一个属性;
  5. 该属性的初始值是就是前面所说的原始值undefined,还有种情况就是,这个undefined是个局部变量,就像其他普通变量一样,没有任何特殊性,它的值不一定是undefined,但通常情况下都是的,都指的是window.undefined这个属性.
  6. 一个未初始化的变量的值为undefined;
  7. 一个没有传入实参的形参变量的值为undefined;
  8. 如果一个函数什么都不返回,则该函数默认返回undefined;
    JavaScript基础知识-JS数据类型_引用类型_02

4.Number:

概念:

并不像C#等其他语言中,有float、int…,在JavaScript中为number类型;

JavaScript基础知识-JS数据类型_es6_03

5.String:

概念:

JavaScript的字符串类型用于表示文本数据;

JavaScript基础知识-JS数据类型_基本类型_04

6.Symbol (ES6):

概念:
符号(Symbol) 能够实现针对对象状态的访问控制,允许使用string(与ES5相同)或symbol作为键来访问属性。符号是一个新的原语类型,可选的name参数可以用于调试——但并不是符号身份的一部分。符号是独一无二的(如同gensym(所产生的符号)),但不是私有的,因为它们可以通过类似Object.getOwnPropertySymbols的反射特性暴露出来。

1、符号类型是唯一的并且是不可修改的, 并且也可以用来作为Object的key的值. 
2、符号是一种特殊的、不可变的数据类型,可以作为对象属性的标识符使用。
3、符号对象是一个符号 原始数据类型的隐式对象包装器。

二.引用类型值:

概念:

  1. 引用类型值指的是那些保存在堆内存中的对象,意思是,变量中保存的实际上只是一个指针,这个指针指向内存堆中实际的值;
  2. 引用类型值按引用访问,当查询时,我们需要先从栈中读取内存地址,然后再顺藤摸瓜地找到保存在堆内存中的值;
  3. 引用类型值复制的是存储在栈中的指针,将指针复制到栈中未新变量分配的空间中,而这个指针副本和原指针执行存储在堆中的同一个对象,复制操作结束后,两个变量实际上将引用同一个对象;因此改变其中的一个,将影响另一个;

1.Object

概念:
JavaScript 中的所有事物都是对象:字符串、数值、数组、函数…

此外,JavaScript 允许自定义对象。

  1. JavaScript 对象是拥有属性和方法的数据。
  2. 对象也是一个变量,但对象可以包含多个值(多个变量),每个值以 name:value 对呈现。
var person = {
age: 17,
name: '李四',
address: "China"
};
console.log(typeof (person))

JavaScript基础知识-JS数据类型_es6_05


2.Array

概念:
数组对象是使用单独的变量名来存储一系列的值。

var cars = ["Saab", "Volvo", "BMW"];

3.function

概念:

  1. JavaScript 使用关键字 function 定义函数。
  2. 函数可以通过声明定义,也可以是一个表达式。
  3. 分号是用来分隔可执行JavaScript语句。
  4. 由于函数声明不是一个可执行语句,所以不以分号结束。
var person = {
age: 17,
name: '李四',
address: "China"
};

function getPerson(person) {
console.log(person.name);
}

getPerson(person);

JavaScript基础知识-JS数据类型_前端_06