当前位置: 首页 > news >正文

网站你懂我意思正能量app中国建设银行的官方网站

网站你懂我意思正能量app,中国建设银行的官方网站,北京游戏网站建设,网站悬浮qq面试 JavaScript 框架八股文十问十答第八期 作者#xff1a;程序员小白条#xff0c;个人博客 相信看了本文后#xff0c;对你的面试是有一定帮助的#xff01;关注专栏后就能收到持续更新#xff01; ⭐点赞⭐收藏⭐不迷路#xff01;⭐ 1#xff09;实现call、apply…面试 JavaScript 框架八股文十问十答第八期 作者程序员小白条个人博客 相信看了本文后对你的面试是有一定帮助的关注专栏后就能收到持续更新 ⭐点赞⭐收藏⭐不迷路⭐ 1实现call、apply 及 bind 函数 下面是简单的 JavaScript 实现 call、apply 和 bind 函数的示例 // 实现 call 函数 Function.prototype.myCall function(context, ...args) {// 确保传递的上下文是对象如果未传递或传递的是 null 或 undefined则默认为全局对象context context || window;// 在传入的上下文对象中创建一个临时函数以便调用原函数context.tempFunction this;// 调用原函数const result context.tempFunction(...args);// 删除临时函数delete context.tempFunction;// 返回原函数的执行结果return result; };// 实现 apply 函数 Function.prototype.myApply function(context, argsArray) {// 确保传递的上下文是对象如果未传递或传递的是 null 或 undefined则默认为全局对象context context || window;// 在传入的上下文对象中创建一个临时函数以便调用原函数context.tempFunction this;// 调用原函数const result context.tempFunction(...argsArray);// 删除临时函数delete context.tempFunction;// 返回原函数的执行结果return result; };// 实现 bind 函数 Function.prototype.myBind function(context, ...args) {const fn this;// 返回一个新的函数return function(...newArgs) {// 在调用时使用 myCall 方法传入指定的上下文和参数return fn.myCall(context, ...args, ...newArgs);}; };2异步编程的实现方式 在 JavaScript 中异步编程的实现方式有多种包括回调函数、Promise、Generator、Async/Await 等。下面是一些常见的异步编程实现方式 回调函数Callback 将函数作为参数传递给另一个函数在异步操作完成后调用该函数。Promise 使用 Promise 对象进行异步操作的管理通过 then() 方法处理异步操作的结果可以链式调用多个异步操作。Generator 使用 Generator 函数可以暂停和恢复代码执行配合遍历器对象可实现异步操作的同步化写法。Async/Await 是基于 Promise 的一种异步编程语法糖使用 async 和 await 关键字让异步代码看起来像同步代码更易读和维护。 3setTimeout、Promise、Async/Await 的区别 setTimeout 是 JavaScript 的一个全局函数用于在一定的时间后执行指定的代码。Promise 是 ECMAScript 6 新增的一个异步编程解决方案用于处理异步操作。它可以将异步操作的成功结果和失败原因封装成一个 Promise 对象可以链式调用 then() 方法处理异步操作的结果。Async/Await 是 ECMAScript 2017 的新增特性用于简化 Promise 的使用。async 函数声明异步函数可以在函数内部使用 await 关键字等待 Promise 对象的处理结果使异步代码看起来更像同步代码。 主要区别如下 setTimeout 是用于延迟执行一段代码是一种简单的定时器机制。Promise 是一种用于处理异步操作的对象可以处理异步操作的成功或失败。Async/Await 是一种基于 Promise 的异步编程语法糖可以更方便地编写异步代码使其看起来像同步代码一样易读易维护。 4对Promise的理解 Promise承诺 Promise 是 JavaScript 中用于处理异步操作的一种机制它表示一个异步操作的最终完成或失败并返回相应的结果。Promise 对象可以处于以下三种状态之一 Pending进行中 初始状态表示异步操作正在进行中尚未完成。Fulfilled已完成 表示异步操作已经成功完成可以获取到异步操作的结果。Rejected已失败 表示异步操作失败无法获得异步操作的结果。 Promise 对象具有以下特点 Promise 对象一旦状态改变就会凝固无法再次改变。Promise 支持链式调用可以通过 then() 方法指定异步操作成功和失败时的回调函数。 5Promise的基本用法 下面是 Promise 的基本用法 // 创建一个 Promise 对象 const myPromise new Promise((resolve, reject) {// 执行异步操作setTimeout(() {const randomNumber Math.random();if (randomNumber 0.5) {// 异步操作成功调用 resolve 方法resolve(randomNumber);} else {// 异步操作失败调用 reject 方法reject(new Error(Random number is less than 0.5));}}, 1000); });// 使用 then() 方法处理异步操作的结果 myPromise.then(// 处理成功情况(result) {console.log(Async operation succeeded:, result);},// 处理失败情况(error) {console.error(Async operation failed:, error);} );6Promise解决了什么问题 Promise 解决了 JavaScript 异步编程中的回调地狱Callback Hell问题。在以往的回调函数中多个异步操作嵌套使用时代码结构会变得非常复杂和难以维护容易出现回调地狱的情况。而使用 Promise 可以通过链式调用 then() 方法来处理异步操作的结果使代码更加清晰和可读减少了回调嵌套的层级提高了代码的可维护性和可扩展性。 7Promise.all和Promise.race的区别的使用场景 Promise.all 接受一个包含多个 Promise 的可迭代对象如数组返回一个新的 Promise。这个新的 Promise 在传入的所有 Promise 都成功完成时才会被成功解决如果有一个 Promise 失败则整个 Promise.all 将被拒绝。 const promises [promise1, promise2, promise3];Promise.all(promises).then(results {// 所有 Promise 都成功results 是一个包含所有成功结果的数组}).catch(error {// 任何一个 Promise 失败error 是第一个失败 Promise 的原因});Promise.race 也接受一个包含多个 Promise 的可迭代对象返回一个新的 Promise。这个新的 Promise 在传入的 Promise 中有一个率先解决无论是成功还是失败则它就会解决或拒绝。 const promises [promise1, promise2, promise3];Promise.race(promises).then(result {// 第一个率先解决的 Promise 成功result 是第一个成功的结果}).catch(error {// 第一个率先解决的 Promise 失败error 是第一个失败 Promise 的原因});使用场景 Promise.all 当需要等待多个异步操作都完成并且需要所有结果时例如同时请求多个资源时。Promise.race 当只需要获取最先完成的异步操作结果例如设置一个超时机制只关心最先返回的结果。 8对async/await 的理解 async async 关键字用于声明一个函数是异步的。异步函数会返回一个 Promise 对象可以使用 await 关键字在异步函数内部等待其他 Promise 对象的解决或拒绝。await await 关键字用于暂停异步函数的执行等待 Promise 对象解决然后返回解决的结果。await 只能在异步函数内部使用。 async function example() {const result await someAsyncFunction();console.log(result); }9await 到底在等啥 await 关键字等待的是一个 Promise 对象的解决。当在异步函数中使用 await 时它会暂停函数的执行直到等待的 Promise 对象解决为止。如果等待的 Promise 对象解决了await 表达式会返回解决的值如果 Promise 对象被拒绝await 表达式会抛出拒绝的原因。 async function example() {try {const result await someAsyncFunction(); // 等待 someAsyncFunction 的解决或拒绝console.log(result); // 如果解决打印解决的值} catch (error) {console.error(error); // 如果拒绝打印拒绝的原因} }10async/await的优势 清晰简洁 使用 async/await 使异步代码看起来更像同步代码提高了代码的可读性和可维护性。错误处理 使用 try/catch 块捕获异步操作的错误使错误处理更加直观而不需要使用回调函数或链式的 .catch()。逻辑结构 使用 async/await 可以更自然地表示异步操作的逻辑结构避免了回调地狱使代码层次更加清晰。同步风格 使得异步代码可以按照同步的方式编写提高了代码的可读性也使得编写异步代码更加容易。 开源项目地址https://gitee.com/falle22222n-leaves/vue_-book-manage-system 已 300 Star ⭐点赞⭐收藏⭐不迷路⭐
http://www.hkea.cn/news/14455438/

相关文章:

  • 网站被降权如何恢复腾讯云网站建设教学视频教程
  • 网站开发语言php新媒体营销方案策划书
  • 成都天府新区网站建设工作室建设
  • 深圳品牌网站建设服务费用网站建设的技术难点
  • 几个做ppt的网站知乎wordpress-move
  • 鲜花便宜的网站建设电子商务网站开发技术解决方案
  • 公司网站建设合作协议wordpress安装无法链接数据库
  • 智能家居网站模板上海企业查询官网
  • 科技网站备案网站后台编辑
  • 新乡集团网站建设建站教程视频下载
  • 儿童网站欣赏wordpress分类标题自定义
  • 云南建设厅网站职称评定芜湖网站网站建设
  • 德州口碑好的网站制作公司wordpress retina
  • 一级造价工程师报名网站淘宝店铺推广渠道有哪些
  • 服装营销型网站建设给娃娃做衣服卖的网站
  • 网站建设 开发个人网站建设在哪里
  • wordpress模板 门户网站怎么建立挣流量的网站
  • 自己做的网站在浏览器上显示不安全关于网站建设请示
  • 制作网页教程简单进一步优化落实
  • php+mysql 网站建设采集站seo赚钱辅导班
  • 浙江省建设厅网站wordpress配置主题
  • 中国外贸网站大全wordpress游戏代练主题
  • 设计网站页面要怎么切图商城县建设局网站
  • 网站建设 seo结构wordpress手机版网页
  • 网站栏目策划wordpress 动作
  • 服务好的徐州网站建设网站建设的目的只是开展网络营销
  • 网站开发常用js函数长春企业宣传片制作公司
  • 什么是营销型网站呢seo怎么收费seo
  • 微信网页上的网站怎么做绵阳的网站建设公司
  • 响应式购物网站wordpress 文章版权 插件