ES6-6 - this指向、箭头函数基本形式、rest运算符
一 chrome断点调试
- 观察函数调用栈
// 25min
var x = 1;
function foo(x, y = function () { x = 2; console.log(2) }) {var x = 3;y();console.log(x)
}
foo()
console.log(x)
// 2 3 1
var x = 1;
function foo(x, y = function () { x = 2; console.log(x) }) {x = 3;y();console.log(x)
}
foo()
console.log(x)
// 2 2 1
二 this指向
this指向总结
箭头函数的this
- 默认绑定规则:指向window(严格模式指向undefined)
- 隐式绑定:谁调用指向谁
- 显示绑定:call、apply、bind
- new
三 箭头函数
=> 胖箭头
const f = a => a
// 当参数只有一个时可省略括号()
// 当函数体只有一句return时 可省略括号{}和return
const f = () => 5
- 箭头函数中不存在arguments,可以用rest运算符…args(数组)
四 rest/spread运算符…/不定参数
- 展开或收集
- 可以将数组展开
function foo(x, y, z){console.log(x, y, z)
}
foo(...[1, 2, 3]) // 1 2 3
foo.apply(null, [1, 2, 3]) // 1 2 3
foo.apply(undefined, [1, 2, 3]) // 1 2 3
- 收集的功能
const sum = (...args) => args
// 返回的args是数组而不是类数组
const a = [2, 3, 4]
const b = [1, ...a, 5]
console.log(b) // 1 2 3 4 5
[1].concat(a, [5]) // 1 2 3 4 5
concat参数
- rest收集必须是最后一个参数,否则报错
const fn = (a, ...b) => console.log(b)
fn(1, 2, 3, 4, 5) // [2,3,4,5]真正的数组
==argument数组排序 ==
- 对函数形参的影响,…不计入length(默认值也会)
const fn = (a, ...b) => a
console.log(fn.length) // 1
ES6-6 - this指向、箭头函数基本形式、rest运算符相关推荐
- 石川es6课程---4、箭头函数
石川es6课程---4.箭头函数 一.总结 一句话总结: 相当于函数的简写,类似python lambda 函数,先了解即可 let show1 = function () {console.log( ...
- ES6学习笔记:箭头函数
lambda函数即匿名函数,在ES6发布之前,我们通常会这样写匿名函数 var selected = allJobs.filter(function (job) {return job.isSelec ...
- 高级JavaScript #ES6(模板字符串,let,箭头函数,forof,参数增强,解构,class,promise)
模板字符串 1.模板字符串: 只要拼接字符串 都用模板字符串代替+a.整个字符串包裹在一对儿反引号 ` ` 中b.反引号``中支持换行 c.反引号中需要动态生成的内容必须放在${}里d. ${}里: ...
- ES6精解:箭头函数
基本用法 在ES6中允许使用 => 来定义函数,如下: var f = a => a;console.log(f(1)); //1 就等同于 var f = function(a){ret ...
- ES6之什么是箭头函数?
箭头函数是匿名函数,ES5匿名函数的语法糖:但又增加了ES5所没有的一些优点,接下来我们一起来看一看箭头: //ES5 var tt = function tt() {return 55 + 99; ...
- ES6基础语法(let、const、解构赋值、模板字符串、简化对象、箭头函数、扩展运算符)(一)
系列文章目录 第二章:ES6深入(Symbol.类.迭代器.Set.Map)(二) 第三章:ES6深入(生成器.Promise.async/await)(三) 第四章:ES6+新增API拓展(对象AP ...
- ES6新特性之箭头函数
概述:ES6允许使用箭头(=>)定义函数,箭头函数提供了一种更加简洁的函数书写方式,箭头函数多用于匿名函数的定义: 箭头函数的注意点 如果形参只有一个,则小括号可以省略 函数体如果只有一条语句, ...
- 实战 es6_Node.JS实战65:ES6新特性:箭头函数
有人说ES6(ES2015)最具魅力的是箭头函数.但真的,我不这么认为:箭头函数这玩意真是又丑又变扭! 不过,箭头函数确实有它的功能优势: 1.简洁: (虽然我也不认为这是真的简洁,还是认为它是很变扭 ...
- ES6新特性_ES6箭头函数的实践以及应用场景---JavaScript_ECMAScript_ES6-ES11新特性工作笔记010
然后我们再去看,这个箭头函数的一些应用 右边有块区域我们点击div以后实现2s以后,我们变成粉色 我们去实现 声明一个let ad得到这div对象 然后给这对象添加事件监听,可以看到这里,添加了一个c ...
最新文章
- mysql百万数据写入_mysql 百万级数据查找,并写入txt文件
- 多线程“基础篇”11之 生产消费者问题
- 使用Gradle构建Java项目
- java 307跳转_java – failure:retrofit.RetrofitError:307临时重定向?
- unity 加载完场景继续加载场景中的物体_Unity光照渲染原理
- 纯新手DSP编程--5.21--RTDX
- ASF文件格式详解(1)
- 连接远程服务器 远程服务器怎么连接
- 两个60后大叔的新能源战争:王传福与曾毓群的万亿赌局
- 各地2022年上半年软考考试疫情防控要求汇总-2022-05更新
- 语言-汉语-官话-中原官话-兖菏片:兖菏片
- java joda datetime_关于java:使用Joda将日期转换为DateTime
- Android微信App 分享功能调整,Android 微信SDK分享功能(1)
- Angular 5 反向代理配置
- 程序员社交网站_程序员不必在社交上感到尴尬。 这里有10项社交技巧可以改善您的职业。...
- 微信小程序下拉触底卡顿
- 计算机管理员无法关闭防火墙,Win10关闭防火墙提示:出于安全原因 某些设置由系统管理员管理的解决方法...
- Wifi对人体有没有危害?
- 使用STM32hal库usart的接收中断分析及出现部分问题的解决
- 十进制进制法_什么是十进制计数法
热门文章
- mysql rename table_Mysql: RENAME TABLE IF EXISTS
- vue获取元素距离页面顶部的距离_VUE实时监听元素距离顶部高度的操作
- l2的最优回归_大白话5分钟带你走进人工智能-第15节L1,L2几何解释和Ridge等回归...
- 3D游戏的照明设计理论,第3部分:三点照明法的异端与误区
- 对TypeScript进行研究
- C#调用存储过程的通用类
- Cocoapods pod update执行失败报错CocoaPods was not able to update the `master` repo.2019的解决...
- 20165223《Java程序设计》第八周Java学习总结
- 面向对象命名空间、组合
- 任何时候,写下一个类,一定要有三个函数