首页 > 编程语言 >JavaScript复习知识点

JavaScript复习知识点

时间:2023-07-24 11:22:51浏览次数:45  
标签:知识点 浏览器 复习 JavaScript 响应 原型 服务器 请求

原型

在 JavaScript 中,每个对象都有一个原型(prototype)。原型是一个对象,其他对象可以通过它来继承属性和方法。简单来说,对象通过其原型来共享和访问属性和方法。

原型以原型链的形式连接在一起,形成了一个对象和原型之间的关系。当我们访问对象的属性或方法时,JavaScript 引擎首先在对象本身查找,如果找不到,则会沿着原型链向上查找,直到找到对应的属性或方法,或者到达继承链的顶端(即 Object.prototype)。

使用原型链的好处是可以节省内存,因为多个对象可以共享相同的属性和方法。这种属性和方法的共享是通过将它们定义在原型对象上实现的。

事件循环

在执行一段JavaScript代码时,主线程同步执行,自上而下。在过程中如果遇到异步任务,则会将该任务放入到任务队列中等待执行。

当主线程中的这段JavaScript代码执行完成后,JavaScript引擎会检查任务队列是否有未执行的任务,如果有则按照先进先出的顺序执行队列中的任务

而任务队列又有不同的分类,不同的分类之间又有着不同的执行权重,

浏览器中输入一个url后会发生什么

  1. 解析URL:浏览器会解析用户输入的URL,确定请求的目标服务器和资源路径。
  2. 建立TCP连接:使用HTTP协议,浏览器会与目标服务器建立TCP连接。这包括解析主机名、执行DNS查询以获取服务器的IP地址,并通过三次握手建立可靠的连接。
  3. 发起请求:浏览器向目标服务器发送HTTP请求。这包括指定请求方法(GET、POST等)、资源路径、请求头部(如User-Agent、Cookie等)和请求体(对于POST请求)。
  4. 服务器处理请求:目标服务器接收到请求后,会根据请求的内容和服务器端的配置进行相应的处理。这可能包括读取文件、执行脚本、查询数据库等。
  5. 服务器发送响应:服务器处理完请求后,会生成HTTP响应。响应包括响应状态码(如200表示成功、404表示未找到等)、响应头部(如Content-Type、Cache-Control等)和响应体(返回的实际数据)。
  6. 接收响应:浏览器开始接收从服务器返回的响应数据。这些数据根据响应头部中的Content-Type进行解析,如文本、JSON、HTML、图像等。
  7. 处理响应:根据响应的内容类型,浏览器会执行相应的处理操作。例如,如果是HTML页面,浏览器会解析HTML、构建DOM树,并将其渲染为可视化的网页。
  8. 渲染页面:浏览器会将解析的HTML、CSS和JavaScript代码生成渲染树,并通过布局计算和绘制操作将页面呈现给用户。
  9. 断开TCP连接:在所有响应数据都处理完毕后,浏览器会关闭与目标服务器的TCP连接,释放相关的资源。

标签:知识点,浏览器,复习,JavaScript,响应,原型,服务器,请求
From: https://www.cnblogs.com/letgofishing/p/17576767.html

相关文章

  • 数组去重方法总结(JavaScript 记录)
    在进行项目开发的时候,有时候需要把一些前端的数组进行去重处理,得到一个去重后的数据,然后再进行相关的操作,这也是在前端面试中经常出现的问题数组去重的多种方法:利用ES6Set去重利用for嵌套for,然后splice去重利用indexOf去重利用sort()去重利用对象的属性不能相......
  • Java基础复习—— IO流2
    IO流节点流和处理流节点流可以从一个特点的数据源读写数据,如FileReader、FileWriter处理流(也叫包装流)是“连接”在已存在的流(节点流或处理流)之上,为程序提供更为强大的读写功能,也更加灵活,如BufferedReader、.BufferedWriter区别和联系节点流是底层流(低级流),直接和数据源......
  • JavaScript jQuery 比对示例,ajax示例
    js教程:https://www.w3school.com.cn/js/index.aspjQuery教程:https://www.w3school.com.cn/jquery/index.asp以下是部分代码示例<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>javascript</t......
  • [c/c++][考研复习笔记]排序篇学习笔记
    考研排序复习笔记插入排序#include<stdio.h>#include<stdlib.h>#defineMaxSize9//折半插入排序voidZBInsertSort(intA[],intn){ inti,j,high,low,mid; for(i=2;i<=n;i++){ A[0]=A[i]; low=1;high=i-1; while(low<=high){ mid=(low+high)/2......
  • JavaScript程序设计模式小技巧——策略模式,快看快用!!!
    ##前言>系列首发于公众号[『非同质前端札记』](https://mp.weixin.qq.com/s?__biz=MzkyOTI2MzE0MQ==&mid=2247485576&idx=1&sn=5ddfe93f427f05f5d126dead859d0dc8&chksm=c20d73c2f57afad4bbea380dfa1bcc15367a4cc06bf5dd0603100e8bd7bb317009fa65442cdb&token=1071012......
  • java基础复习
    1、string、stringbuilder和stringbuff的区别可变性:String是不可变的(immutable),一旦创建就不能修改,每次对字符串的操作都会创建一个新的字符串对象。StringBuilder和StringBuffer是可变的(mutable),可以直接修改已有的字符串对象,而不需要创建新的对象。线程安全性:String是线程安全......
  • Python使用Flask开发Web服务 - 裴 - flask的路由route的知识点演示
     默认是支持GET:  修改后,只支持post: 也可以getpost都支持 ......
  • JavaScript | JavaScript数据类型
    数据类型决定了一个数据的特征,比如:123和”123”,直观上看这两个数据都是123,但实际上前者是一个数字,而后者是一个字符串。对于不同的数据类型我们在进行操作时会有很大的不同。JavaScript中一共有5种基本数据类型:字符串型(String)数值型(Number)布尔型(Boolean)null型(Null)undefined......
  • JavaScript | JavaScript入门知识
    JavaScript编写位置我们目前学习的JS全都是客户端的JS,也就是说全都是需要在浏览器中运行的,所以我们我们的JS代码全都需要在网页中编写。我们的JS代码需要编写到<script>标签中。我们一般将script标签写到head中。(和style标签有点像)(但是不一定)属性:type:默认值text/javascri......
  • JavaScript(二)运算符
    一:算数运算符+-*/加减乘除%取模(余数)二:赋值运算符+=-+*=/=%=letnum=5num=num+1num+=1两行一样三:自增自减运算符++  变量+1--  变量-1++在后面,先进行变量外的运算++在前面,先进行自增,在进行变量外的运算用的比较少四:比较运算符(关系运算符)输出布尔值><......