他在声明中的每一个都被贬低为ECMA-357(E4X)标准的一部分。E4X支持已被删除。考虑使用for...of 代替。Firefox现在警告了每个用户的使用情况,它从Firefox 57开始不再工作了。请参阅警告:对每个In循环中的JavaScript 1.6不支持迁移帮助。for语句中的每个for...of 在对象属性的所有值上迭代指定的变量。对于每个不同的属性,执行指定的语句。
语法:
for each (variable in object) { statement }
变量
变量遍历属性值,可选地用var关键字声明。这个变量是函数的局部,而不是环。
对象
迭代属性的对象。
陈述
为每个属性执行的语句。若要在循环中执行多个语句,请使用块语句({…})将这些语句分组。
在for…in中,迭代遍历对象的所有非符号、可枚举属性。
循环中的A只对枚举、非符号属性进行迭代。从内置构造函数(如Array和Object)创建的对象继承了Object.prototype和String.prototype中的不可枚举属性,如String的inde.f()方法或Object的toString()方法。循环将对对象本身的所有可枚举属性以及对象从其构造函数的原型继承的那些属性进行迭代(原型链中更接近对象的属性覆盖原型的属性)。
语法:
for (variable in object) { ... }
变量
在每次迭代中,不同的属性名被分配给变量。
对象
对象,其非符号可枚举属性被迭代。
for...of在可迭代对象(包括内置的String、Array,例如,类似于Array的参数或NodeList对象、TypedArray、Map和Set以及用户定义的可迭代对象)上创建一个循环迭代,调用一个自定义迭代钩子,该钩子带有针对每个不同p的值执行的语句物体的粗糙。
语法:
for (variable of iterable) { statement }
变量
在每次迭代中,一个不同属性的值被分配给变量。
可迭代的
可迭代属性的对象。
箭头函数表达式的语法比函数表达式短,并且没有自己的this、.、super或new.target。这些函数表达式最适合于非方法函数,它们不能用作构造函数。
在HACKS.MZILLA.ORG上也可以看到“ES6的深度:箭头函数”。
两个因素影响了箭头函数的引入:短的函数和不存在这个关键字。
语法:
(param1, param2, …, paramN) => { statements } (param1, param2, …, paramN) => expression // 等效于:= > {返回表达式;} // 当只有一个参数名时,括号是可选的: (singleParam) => { statements } singleParam => { statements } //
一个没有参数的函数的参数列表应该用一对圆括号来写。
()= > {语句}
// Parenthesize the body of function to return an object literal expression: params => ({foo: bar}) // Rest parameters and default parameters are supported (param1, param2, ...rest) => { statements } (param1 = defaultValue1, param2, …, paramN = defaultValueN) => { statements } // Destructuring within the parameter list is also supported var f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c; f(); // 6
var elements = [ ‘Hydrogen‘, ‘Helium‘, ‘Lithium‘, ‘Beryllium‘ ]; elements.map(function(element ) { return element.length; }); // [8, 6, 7, 9] elements.map(element => { return element.length; }); // [8, 6, 7, 9] elements.map(element => element.length); // [8, 6, 7, 9] elements.map(({ length }) => length); // [8, 6, 7, 9]
原文:https://www.cnblogs.com/jsunny/p/9932414.html