JS基础

22 阅读2分钟

学习了前端知识这么久,但是好像从来都没有给自己认真梳理一遍,也不知道自己掌握了多少,掌握的程度如何?但是,现在想通了,确实应该好好整理一下自己的知识面,时刻对自己查漏补缺才行。所以,就有了这么一篇梳理js基础的文章啦。

1、数据的类型

JS内置的数据类型分为基本数据类型和复杂数据类型。

  •  其中,基本数据类型包括:string类型、number类型、boolean类型、bigint类型、symbol类型、null、undefined 七种。其中 bigint 和 symbol 是 ES6 新增的数据类型。bigint 可以表示任意大小的整数,symbol 代表独一无二的值,最大的用处就是在对象中代表唯一属性值。

  •  复杂数据类型也称引用数据类型,包括 数组-Array、对象-Object、时间-Date、正则-RegExp、数学函数-Math、函数-Function。引用数据类型是存放在堆内存当中的,所以在复制的时候会有深拷贝与浅拷贝的问题,深拷贝即将一个与拷贝对象一样的值存放在另一个堆内存中,两者互不影响。浅拷贝则是直接引用源对象的内存地址,当改变了的对象属性的时候,源对象与拷贝对象的值都会被改变。

2、数据类型的检测方法

typeof

image.png

  • 优点:可以快速判断出基本数据类型,但是不能区分 []、null、{},都返回 object。

instanceof

image.png

  • 优点:能够区分ArrayObjectFunction,适合用于判断自定义的类实例对象
  • 缺点:NumberBooleanString基本数据类型不能判断

3、闭包

什么是闭包?
闭包是指那些能够访问自由变量的函数,也就是能够访问其他函数上变量的函数。
  • 闭包的几种表现形式

    1.返回一个函数 2.作为函数的参数传递 3.定时器、事件监听、网络请求 4.立即执行函数

原型链的关系

image.png

总结:

  • 实例.__proto__ === 原型
  • 实例原型.constructor === 构造函数
  • 构造函数.prototype === 原型