持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情
基本数据类型(原始数据类型)【七种】:
-
Undefined
undefined表示“缺少值”,此处应该有一个值,只是没有定义
典型用法:
- 变量被声明了,但没有赋值时,就等于undefined
- 调用函数时,应该提供的参数没有提供,该参数等于undefined
- 对象没有赋值的属性,该属性的值为undefined
- 函数没有返回值时,默认返回undefined
-
Null
null表示“没有对象”,即该处不应该有值
典型用法:
- 作为函数的参数,表示该函数的参数不是对象
- 作为对象原型链的终点
备注:null == undefined 为true,因为它们是类似的值;如果用全等于(===),null === undefined会返回false ,因为它们是不同类型的值。
-
Boolean(布尔值)
只有两个值:true(真)和false(假)
-
Number(数值)
整数和小数
-
String(字符串)
字符串是存储字符的变量,使用单引号或双引包裹起来
-
Symbol
ES6新增的一种原始数据类型 ,表示为 独一无二 的值,用来定义独一无二的对象属性名。
Symbol的定义
-
一种Symbol类型可以通过使用Symbol()函数来生成;
-
Symbol()函数可以接收一个字符串作为参数
let s1 = Symbol('web'); let s2 = Symbol('web'); console.log(s1 === s2); // false ,Symbol()函数接收的参数相同,其变量的值不同,s1和s2是Symbol类型的变量,因为变量的值不同,所以打印的结果为false console.log(typeof s1); //symbol console.log(typeof s2); //symbol
-
-
BigInt(es10新增,表示任意精度格式的整数) 创建一个 BigInt,可以在一个整数的末尾添加字符n,或者调用BigInt() 函数。
BigInt() 函数使用字符串、数字等作为参数。
const b1 =789n;
const b2 = BigInt("123");
const b3 = BigInt(10);
基本数据类型:直接存放在栈(stack)中,在内存中以固定的大小存储
引用数据类型【一种】:
-
对象
对象本质上是由一组无序的键值对(key:value)组成的。包含 function(函数)、Array(数组)、Date(日期)等
引用数据类型:在栈(stack)中存储指向其堆内存的地址(指针),值存放在堆(heap)中。当我们想要访问引用类型的值的时候,需要先从栈中获得对象的地址指针,然后通过地址指针找到其在堆中的数据。
扩展: (将一个变量赋值给另一个变量)
- 基本数据类型复制的是值,赋值完成,两个变量没有任何关系;
- 引用数据类型复制的是地址(指针),复制操作完成后,两个变量实际上将引用同一个对象,修改一个变量另一个变量也会跟着一起变化。