同步和异步的区别

举报
上善若水. 发表于 2022/10/30 00:35:23 2022/10/30
【摘要】 什么是AJAX?如何实现?ajax是一种能够实现网页局部刷新的技术,可以使网页异步刷新。ajax的实现主要包括四个步骤:(1)创建核心对象XMLhttpRequest; (2)利用open方法打开与服务器的连接; (3)利用send方法发送请求;("POST"请求时,还需额外设置请求头) (4)监听服务器响应,接收返回值。什么是高阶函数?高阶函数是对其他函数进行操作的函数;...

什么是AJAX?如何实现?

ajax是一种能够实现网页局部刷新的技术,可以使网页异步刷新。
ajax的实现主要包括四个步骤:
(1)创建核心对象XMLhttpRequest;

    (2)利用open方法打开与服务器的连接;

    (3)利用send方法发送请求;("POST"请求时,还需额外设置请求头)

    (4)监听服务器响应,接收返回值。

什么是高阶函数?

高阶函数是对其他函数进行操作的函数;
高阶函数就是一个接收函数作为参数或将函数作为输出返回的函数。
例如,Array.prototype.map,Array.prototype.filter 和Array.prototype.reduce 是语言中内置的一些高阶函数。
描述浏览器的渲染过程?,DOM树和渲染树的区别?

浏览器的渲染过程:
解析 HTML 构建 DOM(DOM树),并行请求 css/image/js
CSS 文件下载完成,开始构建 CSSOM(CSS树)
CSSOM 构建结束后 和 DOM 一起生成 Render Tree(渲染树)
布局(Layout):计算出每个节点在屏幕中的位置
显示(Painting):通过显卡把页面画到屏幕上
DOM 树 和 渲染树 的区别:
DOM 树与 HTML 标签一一对应,包括 head 和隐藏元素
渲染树不包括 head 和隐藏元素,大段文本的每一个行都是独立节点,每一个节点都有对应的 css 属性
Javascript 如何实现继承?

实例继承:将子构造函数的 prototype 指向父构造函数的一个实例
原型继承:将子构造函数的 prototype 指向父构造函数的 prototype
构造函数绑定:使用 call 或 apply 方法,将父对象的构造函数绑定在子对象上
拷贝继承:如果把父对象的所有属性和方法,拷贝进子对象
ES6 语法 extends:class ColorPoint extends Point {}
Javascript 作用域链?

如果当前作用域没有找到属性或方法,会向上层作用域查找,
直至全局函数,这种形式就是作用域链
eval是做什么的?
eval 的功能是把对应的字符串解析成 JS 代码并运行

应该避免使用 eval,不安全,非常耗性能(先解析成 js 语句,再执行)
由 JSON 字符串转换为 JSON 对象的时候可以用 eval(’(’+ str +’)’);
js延迟加载的方式有哪些?
动态创建 DOM 方式(用得最多)、defer 和 async标签属性

defer 和 async区别

defer 并行加载 js 文件,会按照页面上 script 标签的顺序执行
async 并行加载 js 文件,下载完成立即执行,不会按照页面上 script 标签的顺序执行
同步和异步的区别?

同步: 下面代码会等待上面 同步代码执行完毕
异步: 下面代码不会等待上面异步代码执行完毕
同步:浏览器访问服务器请求,用户看得到页面刷新,重新发请求,等请求完,页面刷新,
新内容出现,用户看到新内容,进行下一步操作
异步:浏览器访问服务器请求,用户正常操作,浏览器后端进行请求。
等请求完,页面不刷新,新内容也会出现,用户看到新内容
documen.write 和 innerHTML 的区别

document.write 只能重绘整个页面
innerHTML 可以重绘页面的某一部分
说说你对闭包的理解
闭包有三个特性:

函数嵌套函数
函数内部可以引用外部的参数和变量
参数和变量不会被垃圾回收机制回收,会永远留驻在内存中
使用闭包主要是为了设计私有的方法和变量。
优点:是可以避免全局变量的污染,

缺点:是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。

把 <script> 放在 </body> 之前和之后有什么区别?

浏览器会如何解析它们?
按照HTML标准,在结束后出现<script>或任何元素的开始标签都是解析错
虽然不符合 HTML 标准,但浏览器会自动容错,使实际效果与写在</body>之前没有区别
浏览器的容错机制会忽略<script>之前的,视作<script>仍在 body 体内。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。