#es6

ES6中的模块化

  JS用"共享一切"的方法加载代码,这是该语言中最易出错且容易令人感到困惑的地方。在ES6以前,在应用程序的每一个JS中定义的一切都共享一个全局作用域。随着web应用程序变得更加复杂,JS代码的使用量也开始增长,这一做法会引起问题,如命名冲突和安全问题。ES6的一个目标是解决作用域问题,也为了使JS应用程序显得有序,...
代码星球 ·2020-06-27

ES6里的修饰器Decorator

  修饰器(Decorator)是一个函数,用来修改类的行为。一、概述  ES6引入了这项功能,目前Babel转码器已经支持Decorator  首先,安装babel-core和babel-plugin-transform-decorators。由于后者包括在babel-preset-stage-0之中,所以改为安装b...
代码星球 ·2020-06-27

ES6里关于类的拓展(二):继承与派生类

继承与派生类  在ES6之前,实现继承与自定义类型是一个不小的工作。严格意义上的继承需要多个步骤实现functionRectangle(length,width){this.length=length;this.width=width;}Rectangle.prototype.getArea=function(){re...

ES6里关于类的拓展(一)

  大多数面向对象的编程语言都支持类和类继承的特性,而JS却不支持这些特性,只能通过其他方法定义并关联多个相似的对象,这种状态一直延续到了ES5。由于类似的库层出不穷,最终还是在ECMAScript6中引入了类的特性。一、ES5近似结构  在ES5中没有类的概念,最相近的思路是创建一个自定义类型:首先创建一个构造函数,...
代码星球 ·2020-06-27

ES6里的解构赋值

  我们经常定义许多对象和数组,然后有组织地从中提取相关的信息片段。在ES6中添加了可以简化这种任务的新特性:解构。解构是一种打破数据结构,将其拆分为更小部分的过程。一、引入背景  在ES5中,开发者们为了从对象和数组中获取特定数据并赋值给变量,编写了许多看起来同质化的代码letoptions={repeat:true...
代码星球 ·2020-06-27

ES6里关于作用域的拓展:块级作用域

  过去,javascript缺乏块级作用域,var声明时的声明提升、属性变量等行为让人困惑。ES6的新语法可以帮助我们更好地控制作用域。一、var声明1、变量提升:var声明会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined functiongetValue(c...

ES6中的Map集合(与java里类似)

  Set类型可以用来处理列表中的值,但是不适用于处理键值对这样的信息结构。ES6也添加了Map集合来解决类似的问题一、Map集合  JS的对象(Object),本质上是键值对的集合(Hash结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制  为了解决这个问题,ES6提供了Map数据结构。它类似于对象...
代码星球 ·2020-06-27

ES6中Set集合(与java里类似)

一、引入背景  Set集合是一种无重复元素的列表,开发者们一般不会逐一读取数组中的元素,也不太可能逐一访问Set集合中的每个元素,通常的做法是检测给定的值在某个集合中是否存在  Map集合内含多组键值对,集合中每个元素分别存放着可访问的键名和它对应的值,Map集合经常被用于缓存频繁取用的数据。在标准正式发布以前,开发者...
代码星球 ·2020-06-27

ES6中关于数据类型的拓展:Symbol类型

  ES5中包含5种原始类型:字符串、数值、布尔值、null、undefined。ES6引入了第6种原始类型——Symbol。  ES5的对象属性名都是字符串,很容易造成属性名冲突。比如,使用了一个他人提供的对象,想为这个对象添加新的方法,新方法的名字就有可能与现有方法产生冲突。如果有一种机制保...

ES6里关于函数的拓展(三)

一、箭头函数  在ES6中,箭头函数是其中最有趣的新增特性。顾名思义,箭头函数是一种使用箭头(=>)定义函数的新语法,但是它与传统的JS函数有些许不同,主要集中在以下方面:1、没有this、super、arguments和new.target  绑定箭头函数中的this、super、arguments和new.t...
代码星球 ·2020-06-27

ES6里关于函数的拓展(二)

一、构造函数  Function构造函数是JS语法中很少被用到的一部分,通常我们用它来动态创建新的函数。这种构造函数接受字符串形式的参数,分别为函数参数及函数体varadd=newFunction("first","second","returnfirst+second");console.log(add(1,1));...
代码星球 ·2020-06-27

ES6里关于函数的拓展(一)

一、形参默认值  Javascript函数有一个特别的地方,无论在函数定义中声明了多少形参,都可以传入任意数量的参数,也可以在定义函数时添加针对参数数量的处理逻辑,当已定义的形参无对应的传入参数时为其指定一个默认值  ES5模拟:在ES5中,一般地,通过下列方式创建函数并为参数设置默认值functionmakeRequ...
代码星球 ·2020-06-27

ES6里关于正则表达式的拓展

一、构造函数  在ES5中,RegExp构造函数的参数有两种情况。  第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag)varregex=newRegExp('xyz','i');//等价于varregex=/xyz/i;  第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷...

ES6里关于模板字面量的拓展

  JS的字符串相对其他语言来说功能总是有限的,事实上,ES5中一直缺乏许多特性,如多行字符串、字符串格式化、HTML转义等。ES6通过模板字面量的方式进行了填补,模板字面量试着跳出JS已有的字符串体系,通过一些全新的方法来解决类似的问题。一、基本用法  模板字面量是增强版的字符串,它用反引号(`)标识二、多行字符串 ...

ES6里关于字符串的拓展

一、子串识别  自从JS引入了indexOf()方法,开发者们就使用它来识别字符串是否存在于其它字符串中。ES6包含了以下三个方法来满足这类需求:1、includes():该方法在给定文本存在于字符串中的任意位置时会返回true,否则返回false2、startsWith():该方法在给定文本出现在字符串起始处时返回t...
代码星球 ·2020-06-27
首页上一页...910111213...下一页尾页