es6常见语法的应用场景以及误区
2017-11-29 20:12
423 查看
es6越来越多的被应用到工作当中来,然后大部分人虽然明白es6的一些语法,有时候却不能巧妙的应用到实际工作当中来,本文将常用的es6语法做了归纳与整理。
使用方法:[].forEach(function(item, index, array){
})
forEach方法中的function回调支持3个参数,第1个是遍历的数组内容;第2个是对应的数组索引,第3个是数组本身
2. map 常用于对数组里所有元素做同样操作后返回新的数组。 有返回值。
使用方法:[].map(function(item, index, array){
})
使用误区: var a=['1', '2', '3'].map(parseInt);
以上代码 输出为[1, NaN, NaN]
3. reduce: es5出现的一个方法。常用于数组的迭代。有返回值。
理解: [x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
[x1, x2, x3, x4].reduce(f, y) =f(f(f(f(y, x1), x2), x3, x4))
使用形式: arr.reduce(callback[, initialValue])
callback(一个在数组中每一项上调用的函数,接受四个函数:)
previousValue(上一次调用回调函数时的返回值,或者初始值)
currentValue(当前正在处理的数组元素)
currentIndex(当前正在处理的数组元素下标)
array(调用reduce()方法的数组)
initialValue(可选的初始值。作为第一次调用回调函数时传给previousValue的值)
4. filter:过滤掉不符合条件的数组元素,返回所有符合条件的数组元素组成的新的数组。有返回值。
使用形式:[].filter(function(){
})
5.find
误区:很多人会以为使用.then指定的回调函数会在异步请求成功resolved后立即调用,其实是在当前脚本所有的同步代码都执行后才会执行。以下代码执行结果是:
// Promise
// Hi!
// resolved
let promise = new Promise(function(resolve, reject) {
console.log('Promise');
resolve();
});
promise.then(function() {
console.log('resolved.');
});
console.log('Hi!');
注意:resolve(param)里的参数param可以传到.then指定的回调函数里
let promise = new Promise(function(resolve, reject) {
console.log('Promise');
let a = 'testa';
resolve(a);
});
promise.then(function(val) {
console.log(val);
});
console.log('Hi!');
以上代码的运行结果为:
Promise
Hi!
testa
误区:并不是在promise里使用了reject ,promise的结果就为rejected。有时候即使是抛出错误,错误被捕获到了,promise状态也是resolved
var promise = new Promise(function(resolve, reject) {
reject(new Erro);
});
promise.catch(function(error) {
console.log(error);
});
运行结果如下:
数组常用的几个方法
forEach 常用于对数组里的所有元素做同样的操作。无返回值。使用方法:[].forEach(function(item, index, array){
})
forEach方法中的function回调支持3个参数,第1个是遍历的数组内容;第2个是对应的数组索引,第3个是数组本身
2. map 常用于对数组里所有元素做同样操作后返回新的数组。 有返回值。
使用方法:[].map(function(item, index, array){
})
使用误区: var a=['1', '2', '3'].map(parseInt);
以上代码 输出为[1, NaN, NaN]
3. reduce: es5出现的一个方法。常用于数组的迭代。有返回值。
理解: [x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
[x1, x2, x3, x4].reduce(f, y) =f(f(f(f(y, x1), x2), x3, x4))
使用形式: arr.reduce(callback[, initialValue])
callback(一个在数组中每一项上调用的函数,接受四个函数:)
previousValue(上一次调用回调函数时的返回值,或者初始值)
currentValue(当前正在处理的数组元素)
currentIndex(当前正在处理的数组元素下标)
array(调用reduce()方法的数组)
initialValue(可选的初始值。作为第一次调用回调函数时传给previousValue的值)
4. filter:过滤掉不符合条件的数组元素,返回所有符合条件的数组元素组成的新的数组。有返回值。
使用形式:[].filter(function(){
})
5.find
promise 与ajax请求
promise是异步请求的一种解决方案, 比传统的解决方案——回调函数和事件——更合理和更强大。误区:很多人会以为使用.then指定的回调函数会在异步请求成功resolved后立即调用,其实是在当前脚本所有的同步代码都执行后才会执行。以下代码执行结果是:
// Promise
// Hi!
// resolved
let promise = new Promise(function(resolve, reject) {
console.log('Promise');
resolve();
});
promise.then(function() {
console.log('resolved.');
});
console.log('Hi!');
注意:resolve(param)里的参数param可以传到.then指定的回调函数里
let promise = new Promise(function(resolve, reject) {
console.log('Promise');
let a = 'testa';
resolve(a);
});
promise.then(function(val) {
console.log(val);
});
console.log('Hi!');
以上代码的运行结果为:
Promise
Hi!
testa
误区:并不是在promise里使用了reject ,promise的结果就为rejected。有时候即使是抛出错误,错误被捕获到了,promise状态也是resolved
var promise = new Promise(function(resolve, reject) {
reject(new Erro);
});
promise.catch(function(error) {
console.log(error);
});
运行结果如下:
object.assign() 与设置默认值
解构赋值在函数中的应用
VUEX中的es6
相关文章推荐
- 常见的六种设计模式以及应用场景
- Activity生命周期的应用场景举例以及显隐式Activity启动的两种方式和启动系统常见的ACtivity
- Redis常见业务场景应用
- 《好好说话》:常见沟通场景的应对误区与应答思路、应答句式。4星。
- DotNET企业架构应用实践-基于接口开发介绍以及应用场景和案例
- 智能应用中八个常见的误区
- 闭包的使用以及应用场景以及垃圾回收机制
- Tomcat安装的常见问题以及其第一个应用
- [置顶] android launchMode理解以及应用场景
- .htaccess 语法以及应用
- Javaweb学习笔记——(八)——————常见系统体系结构,Tomcat,以及web的内部外部应用,http协议概述
- 【oracle学习】9.触发器以及应用场景
- MatrixCursor:可以实例化的Cursor以及其应用场景
- 单例模式的常见应用场景
- 线程高级应用-心得3-线程范围内的共享变量以及应用场景及面试题案例分析
- 类似微信图片浏览,常见应用场景如微信朋友圈照片九宫格和微信聊天图片预览
- 线程高级应用-心得3-线程范围内的共享变量以及应用场景及面试题案例分析
- .png与.jpg的图片格式的区别?以及它们分别应用场景?
- (转)单例模式(Singleton)的常见应用场景