javascript
文章平均质量分 82
lang20150928
stay hungry stay foolish
展开
-
ES6中的类
类是用于创建对象的模板。他们用代码封装数据以处理该数据。JS 中的类建立在原型上,但也具有某些语法和语义未与 ES5 类相似语义共享。原创 2022-11-13 22:11:18 · 101 阅读 · 0 评论 -
Map集合
ES6中的Map是一种储存着许多键值对的有序列表,其中的键名和对应的值支持所有的数据类型。键名的等价性判断是通过调用Object.is()方法来实现的,所以数字5和字符串"5"会被判定为两种类型,可以分别作为独立的两个键出现在程序中。这一点与对象中不一样,因为对象的属性名总会被强制转换为字符串类型。原创 2022-11-13 21:41:19 · 260 阅读 · 0 评论 -
Set集合
长久以来,数组一直是JavaScript中唯一的集合类型,不过,有一些开发者认为非数组对象也是集合,只不过是键值对集合,它们的用途与数组完全相同。在ES6之前,由于可选的集合类型有限,数组使用的又是数值型索引,因而经常被用于创建队列和栈。如果开发者们需要使用非数值型索引,就会用非数组对象创建所需的数据解构,而这是Set集合与Map集合的早期实现。Set集合是一种无重复元素的列表,开发者们一般不会像访问数组元素那样逐一访问每个元素,通常的做法是检测给定的值在某个集合中是否存在。原创 2022-11-13 21:13:30 · 599 阅读 · 0 评论 -
ES6之Symbol.replace
Symbol.replace接受一个字符串类型的参数和一个替换用的字符串,最终依然返回一个字符串。该函数会在执行String.prototype.replace()方法时被调用原创 2022-11-05 22:47:40 · 204 阅读 · 0 评论 -
ES6学习系列
深入理解ECMAScript6原创 2022-11-05 21:35:30 · 127 阅读 · 0 评论 -
ES6之与Symbol.match
Symbol.match可以用于字符串的匹配以及设置false在某些场景下将正则表达式对象标识为普通对象使用原创 2022-11-05 21:24:12 · 349 阅读 · 0 评论 -
ES6之Symbol.hasInstance
一个在执行instanceof时调用的内部方法,用于检测对象的继承信息。每一个函数中都有一个Symbol.hasInstance方法,用于确定对象是否为函数的示例。该方法在Function.prototype中定义,所以所有函数都继承了instance of属性的默认行为。原创 2022-11-05 19:53:58 · 314 阅读 · 0 评论 -
ES6之Symbol.isConcatSpreadable
@@isConcatSpreadable 符号 (Symbol.isConcatSpreadable) 可以直接定义为对象属性或继承而来,它是布尔类型。它可以控制数组或类似数组(array-like)的对象的行为:对于数组对象,默认情况下,用于 concat 时,会按数组元素展开然后进行连接(数组元素作为新数组的元素)。对于类似数组的对象,用于 concat 时,该对象整体作为新数组的元素。重置Symbol.isConcatSpreadable可以改变默认行为。原创 2022-11-05 19:53:15 · 361 阅读 · 0 评论 -
ES6之Symbol和Symbol属性
Symbol是一种基本数据类型(primitive data type)。Symbol() 函数会返回 symbol 类型的值,该类型具有静态属性和静态方法。它的静态属性会暴露几个内建的成员对象;它的静态方法会暴露全局的 symbol 注册,且类似于内建对象类,但作为构造函数来说它并不完整,因为它不支持语法:"new Symbol()"。原创 2022-11-05 13:41:59 · 351 阅读 · 0 评论 -
ES6之解构参数
当定义函数参数时,用解构参数代替"options"对象可以将你真正感兴趣的数据与其他命名参数列在一起,使其更可读。原创 2022-11-04 23:00:01 · 551 阅读 · 0 评论 -
ES6之数组解构
对象和数组字面量是JavaScript中两种最常用的数据结构,由于JSON数据格式的普及,二者已经成为语言中最重要的一部分。在代码中,我们经常定义很多对象和数组,然后从去提取相关的信息片段,ES6为简化这种任务引入了新特性:解构原创 2022-11-04 22:25:03 · 330 阅读 · 0 评论 -
ES6之对象解构
对象和数组字面量是JavaScript中两种最常用的数据结构,由于JSON数据格式的普及,二者已经成为语言中最重要的一部分。在代码中,我们经常定义很多对象和数组,然后从去提取相关的信息片段,ES6为简化这种任务引入了新特性:解构。原创 2022-11-04 21:43:16 · 397 阅读 · 0 评论 -
ES6正式的方法定义
在ECMAScript 6以前从未正式定义"方法"的概念,方法仅仅是一个具有功能而非数据的对象属性。而在ECMAScript中正式将方法定义为一个函数,它会在一个内部的[[HomeObject]]属性来容纳这个方法从属的对象。原创 2022-10-30 13:36:54 · 107 阅读 · 0 评论 -
ES6增强对象原型
原型是JavaScript继承的基础,在早起版本中,JavaScript严重限制了原型的使用。随着语言逐渐成熟,开发者们也更加熟悉原型的运作方式,他们希望获得更多对于原型的控制力,并以更简单的方式来操作原型。于是,ECMAScript 6针对原型进行了改进。原创 2022-10-30 13:11:47 · 306 阅读 · 0 评论 -
ES6中扩展对象的功能性
ECMAScript 6通过多种方式来加强对象的使用,通过简单的语法扩展,提供更多操作对象及与对象交互的方法。原创 2022-10-29 21:29:10 · 395 阅读 · 0 评论 -
ES6中的箭头函数
在ECMAScript6中,箭头函数是其中最有趣的新增特性。这些差异的产生主要有以下几个原因:首先,也是最重要的,this绑定是JavaScript程序中一个常见的错误来源,在函数内很容易就对this的值失去控制,其经常导致程序出现意想不到的行为,箭头函数消除了这方面的烦恼;其次,如果限制箭头函数的this值,简化代码执行的过程,则JavaScript引擎可以更轻松地优化这些操作,而常规函数往往同时会作为构造函数使用或者其他方式对其进行修改。在箭头函数内,其余的差异主要是减少错误以及理清模糊不清的地方。原创 2022-10-29 16:45:48 · 541 阅读 · 0 评论 -
ES6之无命名参数
在函数的命名参数前添加三个点(...)就表明这是一个不定参数,该参数为一个数组,包含着自它之后传入的所有参数。通过这个数组名即可逐一访问里面的参数。原创 2022-10-28 22:45:05 · 304 阅读 · 0 评论 -
ES6中的默认参数
在ES6中,可以为函数定义默认参数,而在ES6之前,可能需要在函数体内添加额外的代码来检查参数是否存在,如若不存在则手动赋一个默认值。这个函数中,只有第一个参数被认为是总要传值的,其他两个参数都有默认值.而且也不需要添加任何校验值是否缺失的代码,函数体会更小 .原创 2022-10-27 22:19:13 · 329 阅读 · 0 评论 -
ES6中的模板字面量
在一个模板字面量当中,可以把任意合法的JavaScript表达式嵌入到占位符中并将其作为字符串的一部分输出到结果中,占位符由一个左侧的${和右侧的}符号组成,中间可以包含任意的JavaScript表达式。但模板字面量真正的威力来自于标签模板,每个标签模板都可以执行模板字面量上的转换并返回最终的字符串值。其实,可以认为时将模板字面量根据占位符进行拆分,拆分后的字符串放到了第一个数组当中(包括前面和后面的空白字符串),而占位符中的值则作为了第二个参数数组中的值。模板字面量最简单的用于类似于普通的字符串。原创 2022-10-26 21:43:27 · 270 阅读 · 0 评论 -
ES6中正则表达式的一些变更
粘滞匹配、正则表达式的复制、flags属性原创 2022-10-24 21:37:22 · 438 阅读 · 0 评论 -
ES6对字符串的支持
在ES6出现之前,JavaScript字符串一直基于16位字符编码(UTF-16)进行构建。每16位的序列是一个编码单元(code unit),代表一个字符。length、charAt等字符串属性和方法都是基于这种编码单元构建的。当然,在过于16位足以包含任何字符,直到Unicode引入扩展字符集,编码规则才不得不进行变更。原创 2022-10-23 14:29:47 · 247 阅读 · 0 评论 -
ES6之块级作用域绑定
块级作用域绑定的let和const为JavaScript引入了词法作用域,它们声明的变量不会提升。原创 2022-10-23 12:23:46 · 274 阅读 · 0 评论