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

wordpress主题 双站点鄂州网站建设推广报价

wordpress主题 双站点,鄂州网站建设推广报价,域名怎么做网站,私人服务器翻译ES6 前端面试题总结 1. ES6新特性 新增声明命令let、const#xff1a; let、const 都是块级作用域#xff0c;以 {} 代码块作为作用域范围#xff0c;只能在代码块里面使用#xff1b;不存在变量提升#xff0c;只能先声明后使用#xff0c;否则会报错#xff0c;语法…ES6 前端面试题总结 1. ES6新特性 新增声明命令let、const let、const 都是块级作用域以 {} 代码块作为作用域范围只能在代码块里面使用不存在变量提升只能先声明后使用否则会报错语法上称为 暂时性死区在同一代码块内不允重复声明const声明的是一个只读常量在声明时就需要赋值 模板字符串 用一对反引号表示它可以当作普通字符串使用也可以用来定义多行字符串也可以在字符串中嵌入变量、JS表达式或函数需要写在${}中 函数的扩展 函数的默认参数 ES6为函数提供了默认值在定义函数时便初始化了这个参数以便在参数没有被传递进去时使用 箭头函数 对象的扩展 属性简写Object.keys()Object.values();Object.assign() for-of循环import 和 export export用于对外输出本模块一个文件可以理解为一个模块变量的接口import用于在一个模块中加载另一个含有 export 接口的模块import命令只能在模块的顶部不能在代码块中 Promise 对象 Promise是异步变编程的一种解决方案将异步操作以同步操作的流程表达出来避免了层层嵌套的回调函数主要是为了解决异步处理回调地狱也就是循环嵌套的问题而产生的Promise构造函数包含一个参数和一个带有reaolve解析 和 reject拒绝两个参数的回调函数在回调中执行一些操作例如异步如果一切正常则调用resolve()否则调用reject()对于已经实例化过的Promise对象可以调用Promise.then()方法传递resolve和reject方法作为回调Promise.then()方法接受两个参数onResolve 和 onReject分别代表当前Promise对象在成功或失败时 解构赋值Set数据结构 类似数组所有的数据都是唯一的没有重复的值。它本身是一个构造函数Size()数据的长度Add()添加某个值返回Set结构本身Delete()删除某个值返回一个布尔值表示删除是否成功Has()查找某条数据返回一个布尔值Clear()清除所哟成员没有返回值 2. ES6的继承 和 ES5的继承有什么区别 ES5 继承是通过原型或者构造函数机制来实现的 ES6 用calss关键字定义类里面有构造方法类之间通过extends关键字实现子类必须在constructor方法中调用super方法 3. var、let、const有什么区别 var 声明变量可以重复声明而 let 不可以重复声明var 是不受限于块级的而 let 是受限于块级var 会与 window 相映射会挂一个属性而 let 不与 window 相映射var 可以在声明之前访问而 let 有暂时性死区在声明的上面访问变量会报错const 声明之后必须赋值否则会报错const 定义不可变的量改变了会报错const 和 let 一样不会与 window 相映射支持块作用域在声明的之前访问变量会报错 4. module、exort、import有什么作用 module、exort、import是ES6用来统一前端模块化方案的设计思路和实现方案export、import的出现统一了前端模块化的实现方案整合规范了浏览器/服务器的模块化方法用来取代传统的AMD/CMD、requireJS、seaJS、commondJS等等一系列前端模块的不同实现方案使前端模块化更加统一规范JS也能更加实现大型的应用程序开发import引入的模块是静态加载编译阶段加载而不是动态加载运行时加载import 和 export 导出的接口值是动态绑定的即通过接口可以取到模块内部实时的值 5. Set 和 Map 的区别 Set Set对象允许存储任何类型的唯一值Set是值得合集集合中的元素只能出现一次即集合中的元素是唯一的存放的是地址不同的引用数据类型和值不同的基本数据类型set.add()添加数据set.clear()清空数据set.delete()删除数据set.has()查找数据 Map Map对象是键值对的集合Map中的一个键只能出现一次它在Map的集合中是独一无二的本质上是键值对的集合读map.get()写map.set()清空map.clear()查map.has()删除map.delete() 区别 应用场景 Set用于数组去重Map用于数据存储 Set 成员不能重复只有键值没有键名类似数组可以遍历 Map 本质上是键值对的集合类似集合可以遍历可以跟各种数据格式转换 6. setTimeout、Promise、async/await 的区别 setTimeout的回调函数放在 宏任务队列 中等到执行栈清空以后执行Promise.then()里的回调函数会放到 相应宏任务的微任务队列 中等宏任务里面的同步代码执行完毕再执行async函数表示函数里面可能会有异步方法await后面跟一个表达式await方法执行时遇到await会立即执行表达式然后把表达式后面的代码放到微任务队列中让出执行栈让同步代码先执行 7. 介绍一下Promise Promise是解决异步编程导致的地狱回调问题异步编程不方便Promise是一个容器里面保存着异步操作的结果从语法上来讲Promise是一个对象从他里面可以获取异步操作的结果特点 Promise的状态不受外界的影响: Promise对象代表一个异步操作有三种状态pending、fulfilled、reject只有异步操作的结果才可以决定Promise当前是哪一种状态其他任何操作都无法改变这个状态 一旦状态改变就不会再变任何时候都能获取异步操作的结果; Promise对象的状态改变只有两种可能pending-fulfilled 或 pending -rejected。只有这两种情况发生状态就不会再变了会一直保持这个结果。如果改变已经发生你再对Promise对象添加回调函数也会立即得到这个结果 缺点 Promise一旦创立就会立即执行无法中途取消如果不设置回调函数Promise内部抛出的错误无法反应到外部当处于pending状态时无法得到目前进展到哪一阶段 8. Promise.all() 和 Promise.race() 的区别 Promise.all() 发起并行的Promise异步操作等待所有的异步操作全部结束才会执行下一步操作等待机制注意 Promise.all方法的参数可以不是数组但必须具有 Iterator 接口且返回的每个成员都是 Promise 实例 Promise.race() 发起并行的Promise异步操作只要任何一个异步操作完成就立即执行下一步操作赛跑机制 all和race的入参都是数组 9. Promise有几种状态什么时候进入catch 三种状态 pending 进行中fulfilled 完成reject 失败 当 状态为 rejected 时会进入catch 10. Promsie 中的 reject 和 catch 处理上有什么区别 reject用来抛出异常catch用来处理异常reject是Promsie的方法catch是Promise实例的方法reject后的东西一定会进入then中的第二个回调如果then中没有第二个回调则进入catch 4。 网络异常会直接进入catch而不会进入then的第二个回调 const promise new Promise(function(resolve, reject) {// ... some codeif (/* 异步操作成功 */){resolve(value);} else {reject(error);} }); Promise构造函数接受一个函数作为参数该函数的两个参数分别是resolve和reject。它们是两个函数由 JavaScript 引擎提供不用自己部署。 resolve函数的作用是将Promise对象的状态从“未完成”变为“成功”即从 pending 变为 resolved在异步操作成功时调用并将异步操作的结果作为参数传递出去reject函数的作用是将Promise对象的状态从“未完成”变为“失败”即从 pending 变为 rejected在异步操作失败时调用并将异步操作报出的错误作为参数传递出去。 Promise实例生成以后可以用then方法分别指定resolved状态和rejected状态的回调函数。 ---------------------------------------------------------------------- promise.then(function(value) {// success }, function(error) {// failure }); then方法可以接受两个回调函数作为参数。第一个回调函数是Promise对象的状态变为resolved时调用第二个回调函数是Promise对象的状态变为rejected时调用。这两个函数都是可选的不一定要提供。它们都接受Promise对象传出的值作为参数11. new Promise是同步还是异步 new Promise 的构造函数本身是同步执行的。当您创建一个新的Promise实例时传递给Promise构造器的executor函数即带有resolve和reject参数的那个函数会立即、同步地执行 12. promise的then链是同步还是异步 Promise的then方法返回的是一个新的Promise并且其内部的回调函数是异步执行的。当Promise状态改变即从pending变为fulfilled或rejected时与该状态改变关联的then或catch回调会作为一个微任务microtask添加到事件循环的任务队列中。在JavaScript中事件循环分为宏任务macrotask和微任务microtask两个队列Promise的回调属于微任务队列。这意味着在当前宏任务执行完毕包括所有同步代码后但在下一次宏任务开始前会先清空微任务队列。因此虽然then链看起来像是同步代码的一部分但实际上它的回调会在稍后异步执行。 13. promise的then链为什么是异步的 Promise的then链式异步执行的这是由于 Promise 的设计目的和 JavaScript 运行环境特别是事件循环机制决定的微任务队列 当一个 Promise 被 resolve 或 reject并且 then 方法中有回调函数需要执行时这些回调函数不会立即执行而是被放入到微任务队列中等待;这意味着它们会在当前脚本的所有同步代码执行完毕以及当前宏任务例如事件回调、定时器等执行结束后在下一个事件循环迭代时被执行 异步流程控制 Promise 旨在提供一种更优雅的方式来管理异步操作的结果。如果 then 回调同步执行那么它将无法实现真正的异步处理既无法在异步操作完成后再执行相关逻辑 避免阻塞主线程 如果回调函数同步执行可能导致后续的异步结果无法及时得到处理从而阻塞了主线程通过将其置于微任务队列中可以确保即便有大量 Promise 链式调用也不会影响其他同步代码的执行及浏览器UI渲染 一致性与可靠性 无论 Promise 的状态改变是因为同步还是异步操作引起的其回调始终遵循相同的异步执行模型这为开发者提供了一致的预期行为增强了程序的可读性和稳定性 总的来说Promise 的 then 链异步执行是为了适应并强化 JavaScript 异步编程模式保证不会阻塞主线程并且能够以有序的方式处理异步操作的结果 14. ES6 和 commonjs 模块化规范的区别 CommonJS是同步加载ES6是异步加载CommonJS模块输出的是一个值的拷贝ES6模块输出的是值的引用 CommonJS一旦输出一个值模块内部的变化就影响不到这个值ES6JS引擎对脚本静态解析的时候遇到模块的加载命令import就会生成一个只读引用等到脚本真正执行的时候再根据这个只读引用到被加载的那个模块中取值 CommonJS模块是运行时加载ES6模块是编译时输出接口 CommonJS加载的是一个对象该对象只有在脚本运行完才会生成ES6模块不是对象它的对外接口只是一种静态定义在代码静态解析阶段就会生成
http://www.pierceye.com/news/81086/

相关文章:

  • 重庆网站平台设计关于北京的网页
  • 网站单页支付宝支付怎么做wordpress内涵主题
  • 好企业网站天元建设集团有限公司 安百平 电话
  • 营销网站查看邮箱注册过的网站
  • 做3d动画的斑马网站西餐甜点网站建设
  • 网站建设排期商城类网站主要分为哪些模块
  • 网站后台管理系统后缀网站开发html文件规范
  • 做产品网站费用公司网站开发交接注意事项
  • 网站广告条效果怎么做线上营销
  • jsp网站开发书籍推荐wordpress登陆地址修改密码
  • 厦门网站建设公司电话wordpress 酒店预定
  • 网站建设产品培训免费的crm管理系统
  • 怎么制作自己公司网站wordpress怎么完成
  • 菜鸟教程网站建设网站改版影响seo吗
  • 网站建设招标信息asp.net企业网站模板
  • 怎样加入装修接单网站搜索引擎优化英文简称为
  • 网站布局介绍上海网站搜索排名优化哪家好
  • 网站开发项目任务建设本地端网站
  • shopify建站教程电子商务网站建设教学大纲
  • 平面设计案例网站推荐多语种外贸网站建设
  • 织梦网站背景一套完整的app 开发流程
  • 镇江建设局网站三秦网
  • 辽宁工程建设信息网站望城经开区建设开发公司门户网站
  • 暖色调网站wordpress 转换app
  • 服务器做视频网站网站与微信区别
  • ih5做的网站怎么上传织梦生成网站地图
  • 响应式网站科技现在室内设计师好做吗
  • 网站英文淘宝网站设计公司
  • 诏安县建设局网站甘肃网站优化
  • 石龙镇做网站微信小网站是怎么做的