Java 中类似 <T extends Comparable<? super T>> 这样的类型参数 (Type Parameter) 在 JDK 中或工具类方法中经常能看到.比如 java.util.Collections 类中的这个方法声明: public static <T extends Comparable<? super T>> void sort(List<T> list) 我知道 extends 和 super 这样的关键字在泛型…
class 首先, 在JavaScript中, class类是一种函数 class User {    constructor(name) { this.name = name; }    sayHi() {alert(this.name);}} alert(typeof User); // function class User {…} 构造器内部干了啥? 创建一个以User为名称的函数, 这是类声明的结果(函数代码来自constructor中) 储存所有方法, 例如User.prototyp…
在 ES6 中新增了生成器函数的语法,本文解释了生成器函数内 yield 关键字的返回值. 描述 根据语法规范,yield 关键字用来暂停和继续执行一个生成器函数.当外部调用生成器的 next() 方法时,yield 关键字右侧的表达式才会执行. 执行结果会转化为一个对象(包含两个属性, value 和 done),作为 next() 方法的返回值. 对于  var foo = yield expression 语句,yield 左侧变量 foo 的值将在下一次调用 next() 方法时获得,并…
在 ES6 中新增了生成器函数的语法,本文解释了与生成器函数有关的 yield* 关键字,及其使用场景. 描述 根据语法规范,yield* 的作用是代理 yield 表达式,将需要函数本身产生(yield)的值委托出去.yield* 后面跟一个生成器函数.或其他可迭代的对象(如一个数组.字符串.arguments对象). yield* 表达式的返回值,就是其后面可迭代对象迭代完毕时的返回值. 举例 第 1 步,构造一个生成器函数. function* numbers () { yield 1;…
Promise是一个构造函数,它有resolve,reject,race等静态方法;它的原型(prototype)上有then,catch方法,因此只要作为Promise的实例,都可以共享并调用Promise.prototype上面的方法(then,catch) Promise的使用语法: new Promise( function(resolve,reject){} //或 (resolve, reject) => {} //es6箭头函数 ); 在实例化Promise时需要传入一个函数方法作…
(x) => x + 相当于 function(x){ ; }; var ids = this.sels.map(item => item.id).join() var ids = this.sels.map(function(item,index){ return item.id }); //无参数的箭头函数 ; 等价于 }; //一个参数的箭头函数 var f = v => v; 等价于 var f = function(v) { return v; }; //2个参数的箭头函数 v…
ES6 函数 引言: 函数在任何语言中偶读很重要,java里面的函数通常叫做方法,其实是一个东西,使用函数可以简化更多的代码,代码结构看着更加清晰.今天我们来学学ES6语法中,函数有什么变化. 虽然现在的有比ES6更高的版本,但是主流一般都是ES6.es6中的函数相对于之前的版本提升了很多,相对来说在某些特定条件下,用新的函数很方便,也更简洁,功能性更加强大. 1.带参数默认值的函数. 我们都知道js是弱类型语言,不知道你有没有试过,或者学到过,js的函数声明过后,在调用这个函数的时候可以忽略这…
前言 不论是React还是React-native,facebook官方都推荐使用ES6的语法,没在项目中使用过的话,突然转换过来会遇到一些问题,如果还没有时间系统的学习下ES6那么注意一些常见的写法暂时也就够用的,这会给我们的开发带来很大的便捷,你会体验到ES6语法的无比简洁.下面就介绍我在react和react-native中从ES5转到ES6中体会到的几个对比. ES6写组件的区别 直接在React v0.13.0 Beta 1中一个官方的演示来说明: export class Count…
通配符 在本文的前面的部分里已经说过了泛型类型的子类型的不相关性.但有些时候,我们希望能够像使用普通类型那样使用泛型类型: 向上造型一个泛型对象的引用 向下造型一个泛型对象的引用 向上造型一个泛型对象的引用 例如,假设我们有很多箱子,每个箱子里都装有不同的水果,我们需要找到一种方法能够通用的处理任何一箱水果.更通俗的说法,A是B的子类型,我们需要找到一种方法能够将C<A>类型的实例赋给一个C<B>类型的声明. 为了完成这种操作,我们需要使用带有通配符的扩展声明,就像下面的例子里那样…
1 语法支持es6设置 Preferences > Languages & Frameworks > JavaScript 把 Javascript Language version 改为 ECMAScript 6,这样做所有的.js文件中es6不再报错,但是在.vue文件中es6语法依然报错. 2 vue文件中解决报错 在script标签上添加属性  type="es6" <script type="es6"> </scrip…