箭头函数的语法

  function fn1() {
console.log(1);
} let fn2 = () => {
console.log(2);
}
fn1()//1
fn2()//2 //箭头函数: 形参=>返回值
//单个形参的最简写法,箭头函数作为匿名的回调函数是可以省略let fn ,既(形参)=>{语句}
let fn = nub => nub * 2
console.log(fn(10));//20 //多个形参,语句单一。(形参1,形参2)=>返回值
let fn = (num1, num2, num3) => num1 * num2 * num3
console.log(fn(2, 3, 4))//24 //多个形参,多条语句,不加return返回undefined
let fn = (num1, num2, num3) => { let a = num1 + num2; let b = num1 + num3 ;console.log(a + b)}
console.log(fn(2, 3, 4))//报错undefined,与普通函数的没有return的值相同都是undefined //多个形参,多条语句,必须用return返回函数值
let fn = (num1, num2, num3) => { let a = num1 + num2; let b = num1 + num3 ;return(a + b)}
console.log(fn(2, 3, 4))//11

箭头函数的不定参

不定参对应普通函数的arguments

         function fn1() {
console.log(arguments);
}
fn1(1, 2, 3, 4)//伪数组arguments[1,2,3,4] let fn2 = () => {
console.log(arguments);
}
fn2(1, 2, 3, 4)//arguments is not defined,也就是箭头函数没有不定参 //解决剩余参数的方法
let fn3 = (a, b, ...c) => {
console.log(a, b, c)
}
fn3(1, 2, 3, 4)//1,2,[3,4],剩余参数以数组保存 let fn3 = (a, b, ...c) => {
console.log(c[0])
}
fn3(1, 2, 3, 4)//3,注意剩余参数以Array[3,4]进行保存

箭头函数的this的指向

		//本质,箭头函数的this在定义时所在的对象,其实质是因为箭头函数没有自己的this,用的是外层的this
function fn1() {
console.log(this);
}
fn1()//window let fn2 = () => {
console.log(this);
}
fn2()//window,箭头函数本身没有this指向,在调用时指向其声明时所在作用域,这里声明在全局作用域下所以指向window //在点击事件中
document.onclick = function () {
let fn = () => { console.log(this) }
fn()//this指向#document,指向调用时的作用域
} //深入理解
let fn
let fn2 = function () {
console.log(this);
fn = () => { console.log(this) }
}
fn2()//先调用fn2为了给fn赋值为函数,全局函数this打印结果是指向window
fn()//箭头函数调用时应指向声明所在的作用域,fn声明在fn2中,所以指向与fn2相同 //深入理解--变形
let fn
let fn2 = function () {
console.log(this);
fn = () => { console.log(this) }
}
fn2 = fn2.bind(document.body)//先调用fn2为了给fn赋值为函数
fn2()//body
fn()//body

ES6中的箭头函数的语法、指向、不定参数的更多相关文章

  1. 前端项目中常用es6知识总结 -- 箭头函数及this指向、尾调用优化

    项目开发中一些常用的es6知识,主要是为以后分享小程序开发.node+koa项目开发以及vueSSR(vue服务端渲染)做个前置铺垫. 项目开发常用es6介绍 1.块级作用域 let const 2. ...

  2. ES6中的箭头函数

    关于函数表达式中的this:自动引用正在调用当前方法的.前的对象1.obj.fun()中的this fun中的this -> obj2.new Fun() Fun中的this -> 正在创 ...

  3. ES6中的箭头函数与普通函数的区别

    箭头函数与普通函数的区别 1.语法上更加简洁.清晰 基本语法: // 关于箭头函数的参数 // 如果箭头函数没有参数,直接写一个括号即可 let fun1 = () => { console.l ...

  4. es6中的(=>)箭头函数

    x => x * x 上面的箭头函数相当于: function (x) { return x * x; } 箭头函数相当于匿名函数,并且简化了函数定义. 箭头函数有两种格式,一种像上面的,只包含 ...

  5. ES6中的箭头函数和普通函数有什么区别?

    1.普通函数中的this总是指向调用它的那个对象, 箭头函数没有自己的this,他的this永远指向其定义环境,任何方法都改变不了其指向,如call().bind().apply().(正是因为它没有 ...

  6. JS ES6中的箭头函数(Arrow Functions)使用

    转载这篇ES6的箭头函数方便自己查阅. ES6可以使用“箭头”(=>)定义函数,注意是函数,不要使用这种方式定义类(构造器). 一.语法 基础语法 (参数1, 参数2, …, 参数N) => ...

  7. ES6——>let,箭头函数,this指向小记

    let let允许你声明一个作用域被限制在块级中的变量.语句或者表达式. 还是那个经典的问题:创建5个li,点击不同的li能够打印出当前li的序号. 如果在for循环中使用**var**来声明变量i的 ...

  8. 聊聊 ES6 中的箭头函数

    首先来两点: 当只有一个参数的时候,那么 () 可以省略 当只有一个 return 的时候,那么 {} 可以省略 当函数体内只有一条语句的时候,那么 {} 也可以省略 下面来几个简单的例子来对比 ES ...

  9. 箭头函数以及this指向问题

    一.定义函数的方式 //1.function const aaa = function () { } //2.对象字面量中定义函数 const obj = { bbb() { } } //3.ES6中 ...

随机推荐

  1. python之极简ATM系统示例

    """用户可登陆系统输错三次锁定账号用户可以创建新的用户名密码新用户初始账户设为0新用户可直接登陆系统用户登陆成功后可以选择业务类型用户数据可以根据业务修改输入Q随时退出 ...

  2. java位运算求一个整数的绝对值

    1 import java.util.Scanner; 2 3 public class Question1 { 4 public static void main(String[] args) { ...

  3. istio in kubernetes (二) -- 部署篇

    在 Kubernetes 部署 Istio [demo演示] 可参考官方文档(https://istio.io/latest/zh/docs/setup/install/) ,以部署1.7.4版本作为 ...

  4. (十二)struts2的类型转换

    所有的MVC框架,都属于表现层的解决方案,都需要负责收集用户请求参数,并将请求参数传给应用的控制器组件. 这时问题出现了,所有的请求参数都是字符串类型数据,因此MVC框架必须具备将这些字符串请求参数转 ...

  5. Day15_86_通过反射机制获取所有方法(method)

    通过反射机制获取所有方法(method) import java.lang.reflect.Field; import java.lang.reflect.Method; import java.la ...

  6. Day07_36_Iterator迭代器

    Iterator Iterator Iterator iterator(); 获取集合所依赖的迭代对象 通过迭代器iterator()中的方法完成集合的迭代(遍历),这种方式是所有集合通用的遍历方法. ...

  7. 序列化 pickle模块

    1. pickle 简介 2. pickle 核心函数 3. pickle 高级 -- 复杂对象 1. 持久化与 pickle 简介 1.1 什么是持久化? 持久化的基本思想很简单.假定有一个 Pyt ...

  8. C#搞个跨平台的桌面NES游戏模拟器

    支持Windows,Mac,Linux    NES模拟器内核源码来自 https://github.com/colinvella/EmuNes   他这边的源码功能很完善了的,支持视频录制,手柄,金 ...

  9. 11- APP性能测试GT工具的使用

    对性能测试来说有服务端的性能与客户端(APP)的性能. GT简介 1.GT(随身调)是APP的随身调测平台,它是直接运行在手机上的"集成调试环境"(IDTE) 2.利用GT,仅凭一 ...

  10. 各种数据类型是否可进入if判断

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...