范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

前端面试计划(二)ES6v2附加代码

  ## 01. 你能说说ES6有哪些内容吗?
  - let、const- 模板字符串- 解构赋值- 扩展运算符- 字符串的扩展方法(includes, startsWith, endsWith, padStart, padEnd, repeat, replaceAll, trimStart, trimEnd...)- 数组的扩展方法(includes, isArray, from, fill, find, findIndex...)- 箭头函数- 函数的rest参数,函数参数的默认值- Symbol- Reflect- Proxy- Promise- Generator- Map- WeakMap- Set- WeakSet- class- import & export- ...
  ### Symbol
  - Symbol 除了表示独一无二的值- 还具有元编程的能力,比如我们手写 Promise 的时候,如果不定义 Symbol.toStringTag 为 Symbol,那么通过 Object.prototype.toString.call 得到的结果就是 [object Object]- 还可以用于判断某对象是否为某构造器的实例 Symbol.hasInstance,很多人手写 instanceof 的时候都是通过 __proto__ 的方式,这在 ES5 是没问题的,然而在 ES6 是通过 Symbol.hasInstance// 1. Symbol 可以表示一个独一无二的值 let key = "a" const symbol1 = Symbol(key) const symbol2 = Symbol(key) console.log(symbol1 === symbol2) // false  // 2. Symbol.for 方法会根据给定的键 key,来从运行时的 symbol 注册表中找到对应的 symbol,如果找到了,则返回它,否则,新建一个与该键关联的 symbol,并放入全局 symbol 注册表中 const symbol3 = Symbol.for(key) const symbol4 = Symbol.for(key) console.log(symbol3 === symbol4) // true  // 3. Symbol 的元编程能力(改写语法本身),比如手写 Promise 的时候,定义它的 [Symbol.toStringTag] 为 Promise let obj = {   a: "1",   [Symbol.toStringTag]: "not Object" } console.log(Object.prototype.toString.call(obj)) // [object not Object]  // 4. Symbol.hasInstance 用于判断某对象是否为某构造器的实例 let instance = {   [Symbol.hasInstance](value) {     return "name" in value   } } console.log({name:"zf"} instanceof instance) // true  // 5. Symbol.toPrimitive
  ### Reflect
  Reflect 将对象的操作集中起来,可以通过 Reflect. 的方式来使用,比如:- Reflect.ownKeys 可以获取对象的普通属性和Symbol类型的属性,如果不使用 Reflect.ownKeys() ,就要使用 Object.keys() 和 Object.getOwnPropertySymbols 将获取到的普通类型的属性和 Symbol 类型的属性拼接起来- Reflect.has 可以判断一个对象是否存在某个属性,如果不用 Reflect.has 就要使用 key in object// Reflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法  // Reflect 将对象的操作集中起来,可以通过 Reflect. 的方式来使用  // 01. Reflect.ownKeys 可以获取到对象普通属性和Symbol类型的属性 let obj = {   a: 1,   [Symbol("b")]: 2 } Reflect.ownKeys(obj).forEach(key => {   console.log(key, obj[key]) })  // 02. Reflect.has 判断一个对象是否存在某个属性,和 in 运算符 的功能完全相同(for in 会遍历原型链) Object.prototype.x = "x" for (let key in obj) {   console.log(key) } console.log("a" in obj, "x" in obj) console.log(Reflect.has(obj, "a"), Reflect.has(obj, "x"))
  ## 02. 箭头函数和普通函数有什么区别呢?
  1. 箭头函数没有自己独立的作用域,即它的 this 指向它定义时的作用域2. 箭头函数没有 prototype 属性3. 箭头函数没有 arguments 和 caller4. 箭头函数不能作为构造函数
  ## 03. Map 和 WeakMap (Set 和 WeakSet) 的区别?
  - WeakMap 的 key 只能是对象- WeakMap 没有 size 属性,没有 clear 方法,不支持遍历- WeakMap 是弱引用// Map 引用的对象被置为 null 后,不会被回收掉,WeakMap 引用的对象被置为 null 后,后续会被清空  class MyTest {} let my = new MyTest() let map = new Map() map.set(my, 1) my = null console.log(map)  let my2 = new MyTest() let map2 = new WeakMap() map2.set(my2, 1) my2 = null console.log(map2)
  ## 04. 各种模块化规范的细节
  - CommonJs
  CommonJS 主要是 Node.js 使用,通过 require `同步加载`模块,exports 导出内容。在 CommonJS 规范下,每一个 JS 文件都是独立的模块,每个模块都有独立的作用域,模块里的本地变量都是私有的
  - AMD(Asynchronous Module Definition)
  AMD,即异步模块定义。AMD定义了一套JavaScript模块依赖异步加载标准,用来解决浏览器端模块加载的问题。AMD主要是浏览器端使用,通过 define 定义模块和依赖,require 异步加载模块,推崇依赖前置
  - CMD(Common Module Definition)
  CMD,即通用模块定义。CMD定义了一套JavaScript模块依赖异步加载标准,用来解决浏览器端模块架子啊的问题。CMD主要是浏览器端使用,通过 define 定义模块和依赖,require 异步加载模块,推崇依赖就近
  - UMD(Universal Module Definition)
  UMD,即通用模块定义。UMD主要为了解决 CommonJS 和 AMD 规范下的代码不通用的问题,同时还支持将模块挂载到全局,是跨平台的解决方案
  - ESM(ECMAScript Module)
  ESM,即ESModule。官方模块化规范,现代浏览器支持,通过 import 加载模块,export 导出内容

左手IRR,右手NPV,掌握发家致富道路密码背景智能手机的普及让世界成为了我们指尖下的方寸之地。在各种信息爆炸出现的同时,五花八门的理财信息与我们的生活越贴越近。投资不再仅仅是企业行为,对于个人而言,也是很值得关注的内容。但政采云数据可视化探索之SpreadJS表格控件政采云有限公司(以下简称政采云)由浙江省财政厅与阿里巴巴集团合作建设,于2016年8月8日成立。公司以全球领先的云计算大数据人工智能等数字技术为基础,遵循制度定规则市场建平台属地化活字格V7。0Update1推出,提升大型系统的开发效率活字格是葡萄城基于专业控件领域40年的技术积累打造的企业级低代码开发平台,不但可以帮助业务人员等平民开发者自主构建贴近业务的企业应用,还能帮助专业开发者大幅提升工作效率,显著缩短企上投摩根基金使用SpreadJS表格控件满足金融数据处理需求纵观全球,金融数字化已经呈现出蓬勃发展的态势,而中国金融业的数字化发展尤其迅猛。近年来,国家高度重视数字经济发展,十四五规划提出,要抓住产业数字化数字化产业赋予的机遇,抓紧布局数字商场分区库房平面户型展示,自定义地图还可以这样玩众所周知,地图是一种常用的数据可视化展示方式。通过地图展示数据,可以很直观的观察出数据的地域分布特征。类似组合地图等更高级的图表,可以用来展示综合性更强的数据。然而,地图确定边界和新生代农民工如何守住一亩三分田号外号外,你上热搜了!开发者你好,欢迎加入新生代农民工群体。过去,程序员软件工程师经常自嘲为码农。从字面意思上说,码农是专门写代码的农民。他们多为高收入高学历的IT精英,拥有热爱编月光宝盒get用时间置换空间,聊聊稀疏数组的那些事儿背景数据结构是指带有结构特性的数据元素的集合。在数据结构中,数据之间通过一定的组织结构关联在一起,便于计算机存储和使用。从大类划分,数据结构可以分为线性结构和非线性结构,适用于不同低代码渠道商必看,开发和实施究竟有什么区别如果我们需要在后疫情时代寻找一个最受关注的IT技术,低代码肯定能名列前三。低代码技术通过可视化的方式大幅提升了软件开发的效率,并且很大程度上降低了技术门槛。然而,业务分析数据规划等。NET队长张善友16年微软腾讯云华为云MVP是怎样炼成的自由创新研究探索,很难想象到一个IT大神的博客,会将自由放在第一位,也许这二字代表的,既是精神,又是情怀。搞微软技术的,大家或多或少都有听说过微软的最有价值专家(MVP)。从200有你的城市吗?全国新增20个地区开展二手车出口业务据商务微新闻微信公众号11月30日消息,近日,商务部公安部联合印发通知,进一步扩大开展二手车出口业务的地区范围。11月27日,商务部召开专题工作会议,听取新增20个地方二手车出口筹资本助推,打电动飞的的时代正在快步走来3月30日,德国慕尼黑的一家名为Lilium的公司宣布,它将被美国的Qell(纳斯达克交易代码QELL)收购,实现在美国纳斯达克上市。Lilium何许公司?根据其官网信息,该公司致
创维携苏宁开启120Hz高刷精彩视界创维守护者G660S实力登场2022年4月22日958在南京召开创维苏宁经营中心揭牌暨新品G660S新品发布,创维联合苏宁易购推出守护者G660S定制新品,在苏宁易购独家发售。传承守护者品类的品质追求,创维Glinux基础一Linux简介Linux是一种操作系统!!操作系统一堆软件的集合,让计算机硬件正常的工作CS结构客户端(简单方便)与服务端(稳定高效安全)UnixLinux发展史UNIX诞生,1张勇卸任阿里创投公司法人,阿里巴巴回应称这是常规管理动作3月8日,杭州阿里巴巴创业投资管理有限公司(下称阿里创投)发生工商信息变更,阿里巴巴集团CEO张勇不再担任该公司法人代表及董事长,职位将由阿里巴巴B2B事业群总裁戴珊接任。对此,阿现在的年轻人为什么不愿意换手机了?以前年轻人的手机是充当面子的一种工具,后来手机成为了爱国的口号。到了现在年轻人们对于手机的态度反而产生了翻天覆地的变化。从原本对手机的高定义高要求到现在四五年不更换手机。其中到底发元宇宙新鲜事2030年元宇宙经济规模或将达到13万亿美元用户规模达50亿财联社区块链日报1日讯今日元宇宙新鲜事有雷蛇发布全身体感元宇宙游戏套装HyperSenseSuit国华拟与数码视讯合作发展元宇宙相关业务2030年元宇宙经济规模或将达到13万亿美元俄乌冲突引发货币战争,人民币国际化遇到新机遇,CFX或再度起航俄乌冲突已经持续了一个月,西方不断加大对俄罗斯金融领域的制裁,货币战争一触即发,加密货币在经历起初的下跌后受到消息影响逐步反弹收回失地。最近,关于俄罗斯石油结算问题的消息又开始多了比iPhone强?索尼旗舰机皇获红点设计奖颜值的确高4月1日消息,索尼Xperia官方在推特上宣布,XperiaPROI荣获2022年产品设计红点奖。参赛作品依据创新程度功能性人体工程学耐用性等九个标准进行评判,索尼这款产品在以上维删好友能清内存?电量要用完再充电?这些手机维护指南对吗?近日,你有多久没有换手机了上了热搜。很多网友在话题讨论中表示,自己的手机已经用了三四年都挺好,换手机似乎没有太大必要,同时也提出内存耗电等因素是更换手机的重要原因。那么,关于如何保发布十个月下跌1900元,256GB120W闪充,星空四摄旗舰已濒临下架华为公司因为受限无法制造处理器之后,国内手机市场发生了非常戏剧性的一幕,那就是多家国产手机品牌都开始推出高价旗舰,想要瓜分华为让出的高端市场份额,甚至就连魅族都推出了多款价格最高接华为手机,来电话,接听瞬间自动挂断,是何方妖怪在作怪?建议查看是否开启过防骚扰模式,如果有相关模式,建议关闭之后再试。另外,如果还是出现问题建议恢复出厂设置,这是破釜沉舟的办法,恢复出厂设置之前必须要保存资料,然后再进行相关操作。如果中国能再出一个华为这样的公司吗?中国会诞生越来越多的华为这样的公司!!我想一直有吧。只不过我们普通人一般不清楚而已。这么大的海洋,难道只一条鲸鱼,不可能。华为这样的公司中国有很多,但是有如今华为体量,影响力的公司