JavaScript纯理论知识点合集,留着面试用

1. JS的组成
     ECMAScript        ( js语法)  
     DOM             (页面文档对象模型)
     BOM             (浏览器对象模型)

2.数据类型
简单数据类型:
( Number、String、Boolean、Undefined、Null)

复杂数据类型:( object)

3.检测数据类型的方法
      typeof ( )

      Instanceof()

4.数组  : 是指一组数据的集合,其中每个数据被称为元素,在数组中可以存放任意类型的元素。

伪数组:也称为类数组。是一种按照索引存储数据且具有length 属性的对象。因为是对象,所以不能调用数组的方法,比如forEach()、push() 等。
       
5.函数: 就是封装了一段可被重复调用执行的代码块 ,通过此代码块可以实现大量代码的重复使用。

6.作用域: 就是变量在某个范围内起作用和效果,目的是提高程序的可靠性减少命运冲突。

全局作用域: 整个Script标签或者一个单独的js文件。
局部作用域:在函数内部就是局部作用域。

7.作用域链: 内部函数访问外部函数的变量,采取的是链式查找的方式来决定取那个值这种结构称作作用域链。

8.预解析: JS代码是由浏览器的JS解析器来执行的,JS解析器在运行JS代码时候分为两步:预解析和代码执行。
预解析: js引擎会把js里面所有的变量和函数提升到当前作用域的最前面。
代码执行: 按照代码书写的顺序从上往下执行。

9.对象:是一组无序的相关属性和方法的集合,所有的事物都是对象,例如:"字符串、数组、数值、函数等 "。

10.构造函数: 就是把对象里面一些相同的属性和方法抽象出来封装到函数里面。

11.内置对象: 就是JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能,例如: Math、Date、Array等。

12. API  (应用程序编程接口): 是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
简单理解: API是给程序员提供的一种工具,以便能更轻松的实现想要完成的功能。

13. Web API  :  是浏览器提供的一套操作浏览器功能和页面元素的API( DOM和BOM)。

14. 文档: 一个页面就是一个文档,
      元素:页面中的所有标签都是元素,
      节点:网页中的所有内容都是节点(标签、属性、文本等)

15. 事件三要素:  事件源、事件类型、事件处理程序。

16. DOM事件流: 事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程即DOM事件流。(捕获阶段、当前目标阶段和冒泡阶段)

17.事件冒泡: 事件开始时由最具体的元素接收,然后逐级向上传播到DOM最顶层节点的过程。 

18.事件捕获: 由DOM最顶层节点开始,然后逐级向下传播到最具体的元素接收的过程。

19.事件对象:  事件发生后,跟事件相关的一系列信息数据的集合都放到这个对象里面,这个对象就是事件对象event,它有很多属性和方法。

20.事件委托(代理): 
事件委托原理:  不是每个子节点单独设置事件监听器,而是事件监听器设置在其父节点上,然后利用冒泡原理影响设置每个子节点。

21.定时器 :
  setTimeout( )
  set Interval( )

22.同步: 前一个任务结束后 再执行后一个任务,程序的执行顺序与任务的排列顺序是一致的。

     异步: 在执行一个任务的同时,还可以处理其他程序。

23.动画原理: 通过定时器setInterval( )不断移动盒子位置。

24. 重绘: 当元素的一部分属性发生改变,如外观、背景、颜色等不会引起布局变化,只需要浏览器 根据元素的新属性重新绘制,使元素呈现新的外观叫做重绘。

25.重排(回流): 当 render tree 的一部分或全部的元素因改变了自身的宽高,布局,显示或隐 藏,或者元素内部的文字结构发生变化 导致需要重新构建页面的时候,回流就产生了。

 重绘不一定需要重排(比如颜色的改变),重排必然导致重绘(比如改变网页位置)。

26. 回调函数: 就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递 给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不 是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该 事件或条件进行响应。

27. 闭包: 一个作用域可以访问另外一个函数内部的局部变量 ,或者说一个函数(子函数)访问另一 个函数(父函数)中的变量。 此时就会有闭包产生 ,那么这个变量所在的函数我们就称之为闭包函数。

28. 内存泄露:内存泄漏也称作"存储渗漏",用动态存储分配函数动态开辟的空间,在使 用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间 使用完毕之后未回收)即所谓内存泄漏。

29. 原型 :在 JavaScript 中,原型也是一个对象,通过原型可以实现对象的属性继 承,JavaScript 的对象中都包含了一个” prototype”内部属性,这个属性所对应的就是 该对象的原型,原型的主要作用就是为了实现继承与扩展对象。

30. 原型链:当访问一个对象的某个属性时,会先在这个对象本身属性上查找,如果没有找到,则会去 它的__proto__隐式原型上查找,即它的构造函数的 prototype,如果还没有找到就会再 在构造函数的 prototype 的__proto__中查找,这样一层一层向上查找就会形成一个链式 结构,我们称为原型链。

31.宏任务和微任务执行机制:

事件循环先执行宏任务,其中同步任务立即执行,异步任务加载到对应的 Event Queue 中, 微任务也加载到对应的微任务的 Event Queue 中,所有的同步微任务执行完之后,如果发现微 任务的 Event Queue 中有未执行完的任务,先执行他们这样算是完成了一轮事件循环。接下来 查看宏任务的队列中是否有异步代码,有的话执行第二轮的事件循环,以此类推。

32.防抖:当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执 行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始延时。

33.节流:当持续触发事件时,保证一定时间段内只调用一次事件处理函数 节流通俗解释就比如我们水龙头放水,阀门一打开,水哗哗的往下流,秉着勤俭节约的优 良传统美德,我们要把水龙头关小点,最好是如我们心意按照一定规律在某个时间间隔内 一滴一滴的往下滴。

34. 垃圾回收机制: 是为了以防内存泄漏,内存泄漏的含义就是当已经不需要某块内存时 这块内存还存在着,垃圾回收机制就是间歇的不定期的寻找到不再使用的变量,并释放掉它 们所指向的内存。

35.进程:进程是系统中正在运行的一个程序,程序一旦运行就是进程。

进程可以看成程序执行的一个实例。进程是系统资源分配的独立实体,每个进程都拥有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构,如果想让一个进程访问另一个进程的资源,需要使用进程间通信,比如管道,文件,套接字等。

一个进程可以拥有多个线程

线程:线程是进程的一个实体,是进程的一条执行路径。

线程是进程的一个特定执行路径。当一个线程修改了进程的资源,它的兄弟线程可以立即看到这种变化。

36.深拷贝:把一个有对象的属性和方法一个个找出来,在另一个对象中开辟对应的空间,一个个存储到另一个对象中。

37,浅拷贝:浅拷贝只是简单的复制,对象里面的对象属性和数组属性只是复制了地址,并没有创建新的相同对象或者数组。而深拷贝是完完全全的复制一份,空间大小占用一样但是位置不同!

38.跨域:跨域是指从一个域名的网页去请求另一个域名的资源。

39.递归:在程序中函数直接或间接调用自己。

40.封装:也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

猜你喜欢

转载自blog.csdn.net/m0_51060602/article/details/123586718
今日推荐