JavaScript基础——数据类型

本文对JavaScript和ES6中的数据类型简单总结,欢迎讨论!

目录

一、JS和ES6的数据类型

二、数据类型的分类方式

三、数据类型的判断

1. typeof

2. instanceof


一、JS和ES6的数据类型

JS共有6种数据类型:null、undefined、Boolean(布尔值)、Number(数值)、String(字符串)、Object(对象),其中对象又可以分数组、函数和狭义的对象。ES6中新增了Symbol数据类型。

说明:

1. null表示尚未存在的对象

2. undefined表示声明的对象未初始化

3. Symbol主要是为了解决对象的属性名冲突的问题,Symbol可以保证每个属性的名字都是独一无二的,通过 const s = Symbol();生成Symbol值,可以接收字符串作为参数,用于对Symbol实例的描述。

 

二、数据类型的分类方式

JS的数据类型存储方式有两种,分别是栈和堆。堆和栈都是内存划分出来用来存储的区域。栈stack为自动分配的内存空间,由系统自动释放;堆heap则是动态分配的内存,大小不定也不会自动释放。对于栈内存,是将值直接储存在变量访问的位置,而堆内存中,变量实际是一个存放在栈内存的指针,这个指针指向堆内存中对应的地址。

按储存方式,分为原始值和引用值,也叫基本类型和引用类型,对象是引用类型,其他5种都是基本类型。

因为值类型的传值是在内存中新开辟一段栈内存,再把值赋值到新的栈中。而引用类型的传址是保存在栈中的地址的赋值,只是改变指针的指向,将两个变量指向同一个对象,因此两者之间操作互相有影响。总的来说,就是原始值始终不会改变原值,而引用值如果是重新赋值,则不影响原引用值,如果是修改属性等,则影响原引用值。

 

三、数据类型的判断

1. typeof

typeof 'ok'; //string
typeof [1];  //object

typeof 对于null、数组和对象的类型判断均为"object",而对函数等其他数据类型都能准确的返回他们的类型。

2. instanceof

var obj = {};
obj instanceof Object; //true
[1] instanceof Array; //true

instanceof 只适用于对象,不适用原始类型的值,它会检查右边构造函数的prototype是否在左边对象的原型链上,判断左边的实例对象是不是右边构造函数的实例,。

猜你喜欢

转载自blog.csdn.net/huaf_liu/article/details/115396458
今日推荐