箭头函数提供了一种更加简洁的函数书写方式。...var f = (a,b) => a+b; f(6,2); //8 当箭头函数函数体有多行语句,用 {} 包裹起来,表示代码块,当只有一行语句,并且需要返回结果时,可以省略 {} , 结果会自动返回。...this 对象,是定义函数时的对象,而不是使用函数时的对象。...,也就是不能使用 new 命令,否则会报错 适合使用的场景 ES6 之前,JavaScript 的 this 对象一直很令人头大,回调函数,经常看到 var self = this 这样的代码,为了将外部...this 传递到回调函数中,那么有了箭头函数,就不需要这样做了,直接使用 this 就行。
第一部分,ES6 中的 Generator 在 ES6 出现之前,基本都是各式各样类似Promise的解决方案来处理异步操作的代码逻辑,但是 ES6 的Generator却给异步操作又提供了新的思路...说来话长,这要从 ES6 的另一个概念Iterator说起。 第二部分,Iterator 遍历器 ES6 中引入了很多此前没有但是却非常重要的概念,Iterator就是其中一个。...简介Symbol数据类型 Symbol是一个特殊的数据类型,和number string等并列,详细的教程可参考阮一峰老师 ES6 入门的 Symbol 篇。...Symbol.iterator]是一个特殊的数据类型Symbol类型,但是也可以像number string类型一样,作为对象的属性key来使用 原生具有[Symbol.iterator]属性的数据类型 在 ES6...其中,Set和Map也是 ES6 中新增的数据类型。
ES6之后,允许使用箭头=>来定义函数。首先我们来总结一下箭头函数存在的意义,之后再来细细的看它的使用方法。...箭头函数表达式的语法比函数表达式更短,并且不绑定自己的this,arguments,super或者new.target。这些函数表达式最适合用于非方法函数,并且它们不能用作构造函数。...() => {函数声明} 箭头函数的一个用处就是简化回调函数。...,这个箭头函数的定义生效是在foo函数生成时的,而它的真正执行要等到100毫秒之后,如果是普通函数,执行时this应该指向全局函数window,这时应该输出21。...建议参考阮一峰老师的ES6的这本书。
ES6(ECMAScript 2015)引入了箭头函数(Arrow Functions),它是一种更简洁和更具表达力的函数定义方式。...箭头函数具有更短的语法形式,隐式绑定了this,并且没有自己的this、arguments、super 或 new.target。基本语法:箭头函数使用箭头(=>)来分隔参数和函数体。...在上面的示例中,我们定义了一个简单的箭头函数hello,它不带参数,并在函数体中打印了一条消息。隐式返回:箭头函数还具有隐式返回的特性。...在greet方法内部,我们使用箭头函数来定义一个延迟执行的函数,该函数打印问候消息并使用this.name访问person对象的name属性。...注意事项:尽管箭头函数具有许多优点,但也有一些限制和注意事项:箭头函数没有自己的this,因此无法用作构造函数。箭头函数也没有自己的arguments对象,但可以通过使用剩余参数语法来获取参数。
带默认值参数的函数:var get_name = function(url, id=1, callback){}; 如果传入了第二个参数,将不会使用默认值 如果给第二个参数赋值为undefined...延展运算符:var args = ['url', 123, 'st']; get_names(...args); new.target: 使用new创建一个对象时,会被赋值为新对象的构造器 ES6...允许在代码块中定义函数,在严格模式中,块级函数只能在块级作用域中使用,而非严格模式中,块级函数会被提升到全局 箭头函数 没有this,super,arguments,new.target,这些值由所在的...、最靠近的非箭头函数来决定 不能使用new来调用 没有原型 不能更改this 不允许有重复的具名参数 语法 var reflect = value => value; var sum...) 进行尾调用的函数在尾调用返回结果后不能做额外操作 尾调用的结果作为当前函数的返回值
箭头函数是Es6新增加的一个语法特性,在简化编码方面,有着巨大亮点。 下文就是我对于箭头(=>)函数的定义与实用说明。...(a, b){return a + b;} console.log(add(1, 1)) 运行结果 用法三(箭头函数的代码块大于一行...定于语法 // 这个正常写法需要写到上面 不然语法报错 [1,2,3].map(function (x) { return x + x; }); // =>函数写法...> // 这个正常写法需要写到上面 不然语法报错 [1,2,3].map(function (x) { return x + x; }); // =>函数写法
推荐菜鸟es6教程 https://www.runoob.com/w3cnote/es6-function.html 本文中也穿插讲了 对象 如果不懂 请移步 js入门(ES6)[四]—对象...函数 什么是函数 基础函数 函数返回值return 返回一个值 中断函数的执行 带参函数 一个带名参数 两个或多个参数 不定参数 不定参数和带名参数一起 不定参数和一个带名参数 不定参数和多个带名参数...嵌套函数 对象内函数(方法) 箭头函数 基础写法 带参数写法 一个参数 两个或多个参数 不定参数 不定参数和带名参数一起 一个带名参数 多个带名参数 用法 什么是函数 其实就是把一些操作封装起来...方便多次使用 一般大公司会要求 函数不得超过 几行 超过就要再写个函数嵌套 基础函数 //写一个名为 hello的函数 function hello(){ console.log("hello world...在一个函数中 调用另外一个函数 function say() { console.log("hello") } function hello() { say() } hello() 对象内函数
函数参数的默认值 与解构赋值默认值结合使用 rest参数 严格模式 name 属性 箭头函数 嵌套的箭头函数 函数参数的尾逗号 函数参数的默认值 ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法...function foo() {} foo.name // "foo" 这个属性早就被浏览器广泛支持,但是直到 ES6,才将其写入了标准。 需要注意的是,ES6 对这个属性的行为做出了一些修改。...如果将一个匿名函数赋值给一个变量,ES5 的name属性,会返回空字符串,而 ES6 的name属性会返回实际的函数名。...var f = function () {}; // ES5 f.name // "" // ES6 f.name // "f" 如果将一个具名函数赋值给一个变量,则 ES5 和 ES6 的name...const bar = function baz() {}; // ES5 bar.name // "baz" // ES6 bar.name // "baz" 箭头函数 ES6 允许使用“箭头”(
ES6基础系列(三)箭头函数 一、基本用法 先来看看 ES5 中我们怎么写一个函数 const foo = function (num) { return num + 1; }; 再来看看...ES6 为我们提供的箭头函数 const foo = (num) => num + 1; 看这个例子难道箭头函数是为了让我们的代码看上去更“高大上”吗?...箭头函数中的 this,就绑定在它最近一层非箭头函数的 this. 一句话理解:箭头函数内部的 this 是词法作用域,由上下文确定。...this 指向对象 第二个箭头函数,它的 this 绑定在最近一层非箭头函数,也就是 obj 上 2.2 没有 arguments 箭头函数没有自己的 arguments 对象,这不一定是件坏事,因为箭头函数可以访问外围函数的...参考 ES6 系列之箭头函数 廖雪峰:箭头函数 写在最后 关于我 花名:余光(沉迷 JS,虚心学习中) 如果您看到了最后,对文章有任何建议,都可以在评论区留言 这是文章所在 GitHub 仓库的传送门,
构造函数继承的概念构造函数继承是一种通过创建子类来继承父类的属性和方法的方式。通过构造函数继承,子类可以获得父类的实例属性,并且可以调用父类的构造函数来初始化这些属性。...构造函数继承的关键在于使用super()函数在子类的构造函数中调用父类的构造函数。这样可以确保子类继承了父类的属性,并完成了属性的初始化过程。...语法ES6中构造函数继承的语法如下:class ChildClassName extends ParentClassName { constructor(/* 子类构造函数参数 */) { super...然后,在子类的构造函数中使用super()函数来调用父类的构造函数。这样可以确保子类继承了父类的属性,并完成了属性的初始化。示例让我们通过一些示例来理解ES6中构造函数继承的使用。...在子类的构造函数中,我们使用super()函数调用了父类Parent1的构造函数,并分别调用了父类的method1()和method2()方法。
一、函数参数的默认值 1、基本用法 ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面。...函数调用时,函数体内部的局部变量x影响不到默认值变量x。 如果此时,全局变量x不存在,就会报错。...function f(y = x) { let x = 2; console.log(y); } f() // ReferenceError: x is not defined 二、rest 参数 ES6...三、箭头函数 1、基本用法 ES6 允许使用“箭头”(=>)定义函数。...3、嵌套的箭头函数 箭头函数内部,还可以再使用箭头函数。下面是一个 ES5 语法的多重嵌套函数。
// 普通函数 let fun = function () { console.log('原始函数') } fun() // 没有形参的时候 let fun1 = () => console.log...console.log(x, y) return x + y } fun5(30, 31) 箭头函数的this: 箭头函数没有自己的this,箭头函数的this不是调用的时候决定的,而是在定义的时候处在的对象就是它的...this 箭头函数的this看外层是否有函数,如果有,外层函数的this就是内部箭头函数的this,如果没有,则this是window let btn1 = document.getElementById...console.log(this) } } } 箭头函数没有arguments,caller,callee 箭头函数本身没有arguments,如果箭头函数在一个...,要加一个小括号 var func = () => ({ foo: 1 }); //正确 var func = () => { foo: 1 }; //错误 多重箭头函数就是一个高阶函数,相当于内嵌函数
箭头函数基本形式 wdnda 箭头函数基本特点 「1.箭头函数this为父作用域的this,不是调用时的this」 箭头函数的this永远指向其父作用域,任何方法都改变不了,包括call,apply...普通函数的this指向调用它的那个对象。...「2.箭头函数不能作为构造函数,不能使用new」 由于this必须是对象实例,而箭头函数是没有实例的,此处的this指向别处,不能产生person实例,自相矛盾。「3....箭头函数没有arguments,caller,callee」 箭头函数本身没有arguments,如果箭头函数在一个function内部,它会将外部函数的arguments拿过来使用。...箭头函数返回对象时,要加一个小括号」 var func = () => ({ foo: 1 }); //正确 var func = () => { foo: 1 }; //错误 「8.箭头函数在ES6
Async函数是ES2017引入的,这一引入使得异步操作又更加方便了。其实async函数是generator的语法糖。只是把*号变成async,yield变成await。...Async函数返回一个promise对象,可以用then去添加回调函数,函数内部的return值,会成为then方法的回调参数: async function fn() { return 'a';...而且async函数返回的一定要内部所有await后面的promise对象执行完才会发生状态改变,除非遇到return或报错: var pro1 = new Promise((resolve, reject...如果await后面的promise对象有reject状态,则reject会被catch捕获,与return一样,直接终止async函数。
function foo() { setTimeout( () => { console.log("id:", this.id); },...
ES6标准新增了一种新的函数:Arrow Function(箭头函数)。...使用ES6箭头函数语法定义函数,将原函数的“function”关键字和函数名都删掉,并使用“=>”连接参数列表和函数体。...注意,用小括号包含大括号则是对象的定义,而非函数主体 x => {key: x} // 报错 x => ({key: x}) // 正确 箭头函数看上去是匿名函数的一种简写,但实际上,箭头函数和匿名函数有个明显的区别...但不能盲目的使用ES6箭头函数,请看下一节《正确使用箭头函数——什么时候不该用ES6箭头函数》。...在监听点击事件的回调函数中,就无法获取到当前点击的元素咯,详见《正确使用箭头函数——什么时候不该用ES6箭头函数》) 总的来说,箭头函数只是一种函数的简写,有其利弊,可用可不用,看大家心情,当然也得用的正确
ES6对函数的扩展函数蛮多的,不过常用的估计也就是默认值和箭头函数了。...ES6对参数的默认值允许直接设置: function fn(x = 10, y = 20) { console.log(x); console.log(y); } fn()// 10 20...,ES6只要使用了默认值、解构赋值、或者扩展运算符就不能使用 function fn() { 'use strict' } Name属性: ES6对name有一些调整,优先函数名字,其次函数变量的名字...: 这应该不用多说了,现在几乎都使用箭头函数,之前也有分享过箭头函数的一些内容。...双冒号运算符: 双冒号左边是一个对象,右边是一个函数。该运算符会自动将左边的对象,作为上下文环境(即this对象),绑定到右边的函数上面。这好像目前是一个提案,我试着写了写,运行报错。
---- theme: channing-cyan 这是我参与8月更文挑战的第9天,活动详情查看:8月更文挑战 什么是箭头函数 箭头函数是Es6新增的一种定义函数表达式的语法,它简化了我们之前写的函数书写方式...,箭头函数实例化的函数对象与我们Es5之前创建的函数表达式的创建函数行为是相同的。...在任何使用函数表达式的地方,都可以使用箭头函数。但箭头函数有些地方与传统书写方式还有差异,我们在下面来为大家讲解。...箭头函数书写方式 //Es5 let sum = function(a,b){ return a + b; } // Es6 let sum1...在对象上定义函数 在原型上定义函数 动态上下文中的回调函数 构造函数中 太简短的(难以理解)函数
ES6相关概念就不多解释啦,语法也成为了前端的主流,平时在很多场景开发中都会遇到,一下是关于ES6系列笔记的一些记录~ 1:普通写法和箭头函数 //箭头函数...//箭头函数数组排序 let arr = [1, 23, 45, 67, 3, 2, 22]; arr.sort((n1, n2) => { return...n1 - n2; // }); // console.log(arr) //只有一个return的时候,{}可以省略 //箭头函数数组排序...utf-8"> //箭头函数
ES6标准新增了一种新的函数:Arrow Function(箭头函数)。为什么叫Arrow Function?...因为它的定义用的就是一个箭头: x => x * x 相当于: function(x){ return x*x; } 箭头函数相当于匿名函数,并且简化了函数定义。...箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或new.target。箭头函数表达式更适用于那些本来需要匿名函数的地方,并且它不能用作构造函数。...{ ... }有语法冲突,所以要改为: // ok: x => ({ foo: x }) this 箭头函数看上去是匿名函数的一种简写,但实际上,箭头函数和匿名函数有个明显的区别:箭头函数内部的this...: // 空的箭头函数返回 undefined let empty = () => {}; (() => 'foobar')(); // Returns "foobar" // (这是一个立即执行函数表达式
领取专属 10元无门槛券
手把手带您无忧上云