es6系列
文章平均质量分 91
itpeilibo
不怕孤独,努力沉淀;
于淡泊中,平和自在。
展开
-
【JavaScript】js中你是怎么理解ES6中 Decorator 的?使用场景有哪些?
Decorator,即装饰器,从名字上很容易让我们联想到装饰者模式简单来讲,装饰者模式就是一种在不改变原类和使用继承的情况下,动态地扩展对象功能的设计理论。ES6中Decorator功能亦如此,其本质也不是什么高大上的结构,就是一个普通的函数,用于扩展类属性和类方法这里定义一个士兵,这时候他什么装备都没有}定义一个得到 AK 装备的函数,即装饰器使用该装饰器对士兵进行增强}这时候士兵就有武器了上述代码虽然简单,但也能够清晰看到了使用Decorator代码可读性变强了,装饰器命名相当于一个注释。原创 2022-11-04 07:00:00 · 299 阅读 · 1 评论 -
【JavaScript】js中你是怎么理解ES6中Module的?使用场景有哪些?
模块,(Module),是能够单独命名并独立地完成一定功能的程序语句的集合(即程序代码和数据结构的集合体)。两个基本的特征:外部特征和内部特征外部特征是指模块跟外部环境联系的接口(即其他模块或程序调用该模块的方式,包括有输入输出参数、引用的全局变量)和模块的功能内部特征是指模块的内部环境具有的特点(即该模块的局部数据和程序代码)原创 2022-11-03 08:00:00 · 173 阅读 · 1 评论 -
【JavaScript】你是怎么理解ES6中Proxy的?使用场景有哪些?
用于定义基本操作的自定义行为修改的是程序默认形为,就形同于在编程语言层面上做修改,属于元编程元编程(Metaprogramming,又译超编程,是指某类计算机程序的编写,这类计算机程序编写或者操纵其它程序(或者自身)作为它们的数据,或者在运行时完成部分本应在编译时完成的工作一段代码来理解#!这段程序每执行一次能帮我们生成一个名为program的文件,文件内容为1024行echo,如果我们手动来写1024行代码,效率显然低效。原创 2022-11-02 08:00:00 · 293 阅读 · 1 评论 -
【JavaScript】js中你是怎么理解ES6中 Generator的?使用场景有哪些?
Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同回调函数promise那么,上文我们提到promsie已经是一种比较流行的解决异步方案,那么为什么还出现Generator?甚至呢?该问题我们留在后面再进行分析,下面先认识下Generator。原创 2022-11-01 08:00:00 · 320 阅读 · 1 评论 -
【JavaScript】你是怎么理解ES6中 Promise的?使用场景有哪些?
Promise,译为承诺,是异步编程的一种解决方案,比传统的解决方案(回调函数)更加合理和更加强大在以往我们如果处理多层异步操作,我们往往会像下面那样编写我们的代码console . log('得到最终结果: ' + finalResult);阅读上面代码,是不是很难受,上述形成了经典的回调地狱现在通过Promise的改写上面的代码console . log('得到最终结果: ' + finalResult);瞬间感受到promise链式操作减低了编码难度代码可读性明显增强。原创 2022-10-31 08:00:00 · 113 阅读 · 1 评论 -
【JavaScript】js中你是怎么理解ES6新增Set、Map两种数据结构的?
如果要用一句来描述,我们可以说Set是一种叫做集合的数据结构,Map是一种叫做字典的数据结构什么是集合?什么又是字典?区别?原创 2022-10-28 08:00:00 · 256 阅读 · 1 评论 -
【JavaScript】ES6中函数新增了哪些扩展?
参数默认值应该是函数的尾参数,如果不是非尾部的参数设置默认值,实际上这个参数是没发省略的。这种语法行为,在不设置参数默认值时,是不会出现的。如果箭头函数的代码块部分多于一条语句,就要使用大括号将它们括起来,并且使用。一旦设置了参数的默认值,函数进行声明初始化时,参数会形成一个单独的作用域。函数,当参数为对象的时候才能进行解构,如果没有提供参数的时候,变量。如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。如果设置了默认值的参数不是尾参数,那么。函数的形参是默认声明的,不能使用。原创 2022-10-27 08:00:00 · 113 阅读 · 1 评论 -
【JavaScript】ES6中对象新增了哪些扩展?
严格判断两个值是否相等,与严格比较运算符(===)的行为基本一致,不同之处只有两个:一是。返回一个对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对的数组。返回自身的(不含继承的)所有可遍历(enumerable)属性的键对应值的数组。返回自身的(不含继承的)所有可遍历(enumerable)属性的键名的数组。在解构赋值中,未被读取的可遍历的属性,分配到指定的对象上面。方法的第一个参数是目标对象,后面的参数都是源对象。返回指定对象所有自身属性(非继承属性)的描述对象。原创 2022-10-26 08:00:00 · 146 阅读 · 1 评论 -
【JavaScript】ES6中数组新增了哪些扩展?
注意:通过扩展运算符实现的是浅拷贝,修改了引用指向的值,会同步反映到新数组。还可以接受第二个参数,用来对每个元素进行处理,将处理后的值放入返回的数组。返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回。参数是一个回调函数,接受三个参数依次为当前的值、当前的位置和原数组。如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错。方法的参数写成一个整数,表示想要拉平的层数,默认为1。参数的逆运算,将一个数组转为用逗号分隔的参数序列。当参数只有一个的时候,实际上是指定数组的长度。原创 2022-10-25 08:00:00 · 322 阅读 · 1 评论 -
【JavaScript】js中 var、let、const之间的区别你真的理解了吗?
实际上保证的并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。对于复杂类型的数据,变量指向的内存地址,保存的只是一个指向实际数据的指针,,我们能够对一个变量进行多次声明,后面声明的变量会覆盖前面的变量声明。对于简单类型的数据,值就保存在变量指向的那个内存地址,因此等同于常量。不存在变量提升,即它们所声明的变量一定要在声明后使用,否则报错。声明的变量存在变量提升,即变量可以在声明之前调用,值为。声明一个只读的常量,一旦声明,常量的值就不能改变。声明的变量既是全局变量,也是顶层变量。原创 2022-10-24 08:00:00 · 726 阅读 · 2 评论