node.js学习笔记(24) 箭头函数

简介: 箭头函数,是ES6的新特性,Node.js从v5.4.0开始支持。

11月下旬,我安装了Node.js-v5.1.0开始学习和使用Node.js。

然而Node.js开发团队在12月发布了v5.1.1,v5.2.0,v5.3.0,16年1月又发布了v5.4.0,v5.4.1,v5.5.0。这速度,是要坐火箭才能赶上呀……


言归正传,第一次看到"=>"这个符号是在v5.4.0的api文档中。文档中频繁出现这样的代码示例:

()=>{
...
}

通过查Node.js的更新说明得知,这就是箭头函数,是ES6的新特性,Node.js从v5.4.0开始支持。


那么我们先来跟传统函数对比学习一下箭头函数的语法吧!

1、没有参数的情况

传统函数:


var funcWithoutParam = function(){
    console.log('This is a function without param.');
}


箭头函数:


var funcWithoutParam = () => {
    console.log('This is a function without param.');
}

2、单个参数的情况

传统函数:


var funcWithOneParam = function(a){
    console.log('This is a function with a param: a='+a);
}


箭头函数:


var funcWithOneParam = a => {
    console.log('This is a function with a param: a='+a);
}

3、多个参数的情况

传统函数:


var funcWithThreeParam = function(a, b, c){
    console.log('This is a function with 3 params: a='+a +', b='+b+', c='+c );
}

箭头函数:


var funcWithThreeParam = (a, b, c) => {
    console.log('This is a function with 3 params: a='+a +', b='+b+', c='+c );
}

4、匿名函数

传统函数:


function(){
    console.log('This is a no name function.');
}

箭头函数:


() => {
    console.log('This is a no name function.');
}

箭头函数是ES6的新特性,它一定不是function的简单替代品,它们有哪些区别呢?

1、箭头函数不能用new来实例化

2、没有arguments对象

3、this不再善变


关于第3点,我们可以举个栗子。

传统函数的this很善变,作用域仅限与当前函数:

man = {
    name:'lee',
    init:function(){
        var self = this;
        var printName = function() {
            console.log(self.name);
        }
        printName();
    }
}
man.init();


箭头函数this取决于在哪儿定义,不可变:
man = {
    name:'lee',
    init:function(){
        var printName = () => {
            console.log(this.name);
        }
        printName();
    }
}
man.init();


目录
相关文章
|
1月前
|
JavaScript 前端开发
Node.js 函数
10月更文挑战第5天
23 3
|
2月前
|
JavaScript 前端开发 API
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
|
2月前
|
Prometheus 监控 Cloud Native
prometheus学习笔记之node-export
prometheus 监控 node-exporter
|
1月前
|
JavaScript 前端开发
【干货分享】JavaScript学习笔记分享
【干货分享】JavaScript学习笔记分享
57 0
|
2月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
3月前
|
Java jenkins Shell
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
|
4月前
|
数据采集 JavaScript 前端开发
NodeJS技巧:在循环中管理异步函数的执行次数
在Node.js网络爬虫开发中,管理异步函数执行次数是关键。利用Promise.all、async/await或async库能优雅地控制并发。示例展示如何用async/await配合代理IP抓取数据,避免触发反爬策略。在循环中,每个异步请求只执行一次,保证请求有序进行,提高爬虫的稳定性和效率。通过正确的方法,可以有效应对网络爬虫的挑战。
NodeJS技巧:在循环中管理异步函数的执行次数
|
4月前
|
运维 监控 JavaScript
函数计算产品使用问题之将自定义层(nodejs 20)添加到了函数中,本地运行没有问题,但在函数计算中出现问题,该怎么办
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
JavaScript 前端开发
Node.js 函数
Node.js 函数
30 4
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的云的学习笔记系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的云的学习笔记系统附带文章源码部署视频讲解等
40 0