有一个函数很短,比如这样: function getData() { return { data: 1 } } console.log(getData()) // { data: 1 } 想用...ES6箭头函数语法简化一下,于是写成这样: const getData = () => { data: 1 } console.log(getData()) // undefined 怎么会是呢?...解析 根本原因在于这一段: const getData = () => { data: 1 } 如果用传统function来写,和下面是等价的: function getData() { data...j++) { if (j == 2) { break outer } } } console.log(i, j) // 0 2 果然和Java
箭头函数基本使用 // 箭头函数: 也是一种定义函数的方式 // 1.定义函数的方式: function const aaa = function () { } // 2.对象字面量中定义函数...const obj = { bbb() { } } // 3.ES6中的箭头函数 // const ccc = (参数列表) => { // // }...const ccc = () => { } 带返回值的箭头函数 // 1.参数问题: // 1.1.放入两个参数 const sum = (num1, num2) => { return...一般我我们准备把一个函数作为参数放在另外一个函数里的时候使用....setTimeout(() => { console.log(this); //打印的this是 obj对象 }) } } obj.aaa() 箭头函数中的
一般使用箭头函数时,代码块部分只有一条语句时,不使用大括号: var sum = (num1, num2) => num1 + num2 //同样的写法 var sum = (num1, num2) =...如果有多条语句,使用大括号,同时使用return(否则没有返回值): var sum = (n1, n2) => { console.log(n1); return n1 + n2 } 使用箭头函数返回对象
详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景 箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。...就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深… 普通函数和箭头函数的区别: 箭头函数的this指向规则: 箭头函数没有prototype(原型),所以箭头函数本身没有this...: 围绕两点:箭头函数的this意外指向和代码的可读性。...,普通函数的函数参数支持重命名 箭头函数相对于普通函数语法更简洁优雅 箭头函数的注意事项及不适用场景 箭头函数的注意事项: 箭头函数一条语句返回对象字面量,需要加括号 箭头函数在参数和箭头之间不能换行...箭头函数的解析顺序相对||靠前 不适用场景:箭头函数的this意外指向和代码的可读性。
1、this指向问题(重要) MDN的描述是箭头函数不会创建自己的this他只会从自己的作用域链的上一层继承this,这里我们可以理解为this指向外层第一个普通函数(如果没有,则指向全局对象(可通过...console.log(globalThis) // Window obj.fn() // Window obj.fn2()() // {name: 'zs', fn: ƒ, fn2: ƒ} 1、箭头函数中的.../ 报错:ReferenceError: arguments is not defined console.log(args); // [1, 2, 3] } fn(1, 2, 3) 3、不能和new...一起用,会报错 也就是说箭头函数不能被用作构造函数 4、没有prototype const Fn = () => {} console.log(Fn.prototype) // undefined let...f = new Fn(); // Uncaught TypeError: Fn is not a constructor 以上就是关于箭头函数和普通函数的区别,最重要的就是关于this指向问题,有更多的箭头函数的知识大家可以看看
一、箭头函数更直观、简洁 箭头函数为匿名函数 let a = () => {} 有一个参数可省略(),多个的话不能省略(),用 ,号分开 let a = m => {} let b = (m, n...this 的执行环境') // 当前对象 test } } people.fn() people.fn2() 结果: 四、箭头函数没有prototype let a = () => 1 let...arguments,值是有外围非箭头函数所决定的 // 报错 let a = (m) => { console.log(arguments) } a(1,2,3) // arguments is...not defined // 值是有外围非箭头函数所决定的 function fn(){ let f = ()=> { console.log(arguments) } f();...) // 1,2,3 六、箭头函数不能当做Generator函数,不能使用yield关键字 箭头函数的this指向为其上下文的this,一级一级往上找,直到找到 window 当然箭头函数与普通函数的区别还有很多
js匿名函数、箭头函数,以及他们的区别 匿名函数 箭头函数 区别 1.匿名函数 简单点说就是没有名字的函数,在声明函数时不写函数名称,(将函数赋值给变量)叫匿名函数。...箭头函数表面上相当于匿名函数,并且简化了函数定义。...当箭头函数只包含一个表达式时,连{…} 和return都省略了。...')}; var y = ()=>{ console.log('箭头函数')}; x(); y(); 本质上都是函数,箭头函数是匿名函数的简写形式。...箭头函数: 1.没有prototype(原型),所以箭头函数本身没有this。 2.不能当作构造函数,即不能使用new命令。 3.不能使用arguments对象,函数体内不存在该对象。
List array = [1,2,3]; array.forEach(printFunc); } - 匿名函数写法 main(List args) { //和第一种方法相似...]; //直接传入箭头函数 array.forEach((item) => print(item)); } - 当然箭头函数也可以赋值 main(List args) {...//箭头函数赋值 var f = (e) => print(e); //以forEach 函数调用为例 List array = [1,2,3]; //赋值传入箭头函数 array.forEach...(f); } 关于匿名函数和箭头函数的赋值,第一反应前面加一个返回值就行,But报错了,没有这种写法。...其实仔细想想函数的语法糖就是匿名函数,匿名函数的简写就是箭头函数。
JavaScript的动态领域中,函数是基本构建块,赋予开发者高效组织和执行代码的能力。理解普通函数、箭头函数以及相对较新的生成器函数之间的微妙差异,对于编写整洁、简明和高效的代码至关重要。...普通函数的使用广泛且适用于各种场景,使其成为 JavaScript 开发的重要组成部分。箭头函数:箭头函数是在 ECMAScript 6(ES6)中引入的,与普通函数相比,它们提供了更简洁的语法。...箭头函数的语法如下:const add = (a, b) => a + b;箭头函数的主要特点包括:无 function 关键字:箭头函数使用更简洁的语法,省略了需要 function 关键字的部分。...不绑定 this、arguments、super 或 new.target:箭头函数不会为这些值创建自己的绑定。箭头函数在回调函数和函数式编程范式等需要简洁性和词法作用域的场景中特别有用。...生成器函数适用于处理异步操作、惰性求值以及需要高效生成值序列的场景。结论:总之,理解普通函数、箭头函数和生成器函数之间的差异对于编写有效的 JavaScript 代码至关重要。
原文地址:https://dev.to/bhagatparwinder/arrow-functions-this-keyword-350j 在之前的博文中,我们已经学过了箭头函数和 this 关键字...现在我们将把它俩结合起来并且看看箭头函数与标准的函数表达式行为上有何不同。 箭头函数,多数时候像函数表达式的简写语法。最重要的区别是箭头函数没有和 this 关键字绑定。...在这个例子中他们表现的不同,虽然将this.order 改为箭头函数,但如果我们不使用箭头函数作为构造函数,效果也是一样的。...为何 main、side 和 dessert 的值为 undefined ? 箭头函数内部的 this 指向我们定义对象 myObject 时环境(在这里指向 window)。...总结:除了自身直接使用,箭头函数表现的与函数表达式有些不同。虽然箭头函数提供了简明的语法和一些优势,但要知道何时不能使用它直接替换函数表达式。
Javascript中普通函数和箭头函数的区别 1.在es6中运行使用“(=>)”来定义函数,比如: var fn = p=> p;//最精简模式 //等价 var fn = function (p)...var fn2 = (p1,p2)=>{ let p3 = p1+p2; return p3; } 2.箭头函数没有this对象,他会找到上层调用者作为this对象,直至window。...还有,由于箭头函数没有自己的this,所以call,apply,bing等方法都不能改变this指向。...4.箭头函数没有arguments,如果想要获取全部参数,就使用rest参数。...//箭头函数没有arguments,rest参数代替 var add=(...num)=>{ let sum=0; for (let val of num) {
`; } // 函数表达式 const greet = function(who) { return `Hello, ${who}`; } 代码中的函数声明和函数表达式被称为“常规函数”。...从 ES2015 开始,第二种可用的方法是 箭头函数 语法: const greet = (who) => { return `Hello, ${who}!...箭头函数 this 词法解决了箭头函数不能用作构造函数。...; // logs { 0: 'a', 1: 'b'} 类似于数组对象的 arguments 中包含调用参数:'a' 和 'b'。...logName() 方法中 this 的值始终是类实例: setTimeout(batman.logName, 1000); // after 1 second logs "Batman" 总结 了解常规函数和箭头函数之间的差异有助于为特定需求选择正确的语法
普通函数和箭头函数的区别: 箭头函数的this指向规则: 1....: 围绕两点:箭头函数的this意外指向和代码的可读性。...* 行数较多 * 函数内部有大量操作 文章内容小结: 普通函数和箭头函数的区别: 箭头函数没有prototype(原型),所以箭头函数本身没有this 箭头函数的this在定义的时候继承自外层第一个普通函数的...,普通函数的函数参数支持重命名 箭头函数相对于普通函数语法更简洁优雅 箭头函数的注意事项及不适用场景 箭头函数的注意事项: 箭头函数一条语句返回对象字面量,需要加括号 箭头函数在参数和箭头之间不能换行...箭头函数的解析顺序相对||靠前 不适用场景:箭头函数的this意外指向和代码的可读性。
前言说到箭头函数,可能很多人的第一反应就是和普通函数的区别:箭头函数没有 this,普通函数的 this 指向依赖它是如何被调用的箭头函数没有 arguments 对象,而是通过剩余参数(rest parameters...,为什么还要有箭头函数?...Class constructor User cannot be invoked without 'new'const user = User();// 正确const user = new User();箭头函数那为什么箭头函数里边没有...this和原型?...this 来自于面向对象里面的概念,箭头函数里面没有原型的概念是一样的。
如果把最后一行代码修改为 o.m.apply(o); //1 ES6中箭头函数与普通函数this的区别 普通函数中的this: 1. this总是代表它的直接调用者, 例如 obj.func ,那么...); }); } } obj.fn();//object this又指向函数的宿主对象了 为了更加清楚的对比一般函数和箭头函数this指向的区别,我们给对象添加变量 var obj=...,this指向了window(匿名函数,没有调用的宿主对象),而window对象并没有num属性(num属性在obj中定义),而在使用箭头函数的情况下,this的指向却对象obj1,自然可以输出obj1...this指向的关键 setTimeout(function() { console.log(this);//window,非箭头函数的情况下还是要看宿主对象是谁,如果没有被对象调用,函数体中的this...就绑定的window上 }); } f(); } } obj1.fn(); 总结: 1.箭头函数的this绑定看的是this所在的函数定义在哪个对象下,绑定到哪个对象则this
js中箭头函数和普通函数区别如下: 1、样式不同,箭头函数是 =>,普通函数是 function; 2、箭头函数不能作为构造函数使用,也就不能使用 new 关键字; 3、箭头函数不绑定 arguments...,可以考虑用剩余参数代替; 4、箭头函数会捕获其所在上下文的 this 值,作为自己的 this 值,定义的时候就确定了; 5、call、apply、bind 并不会影响 this 的指向; 6、箭头函数没有原型属性...; 7、箭头函数不能当作 Generator 函数,不能使用 yield 关键字;
throw new Error('This is error') } return a+b; } console.log(add(0)); 在控制台可看到异常为: 3.函数中的严谨模式...在ES6中我们可以写在函数体中,相当于针对函数来使用。...5.箭头函数 在箭头函数中,方法体内如果是两句话,那就需要在方法体外边加上{}括号 var add =(a,b=1) => { console.log('hello world') return
参考文档 : ArkTS开发语言介绍 一、TypeScript 函数 1、TypeScript 具名函数和匿名函数 TypeScript 语言中的 函数语法 与 JavaScript...类似 , 但是 在 JavaScript 函数基础上 增加了 类型注解 , 函数代码的 可读性 和 健壮性 增加了 ; JavaScript 中的函数 不需要 声明 形参 和 返回值类型 , 但是在...函数的 形参 和 返回值 类型 删除 , 就是 JavaScript 代码 , <!...在 ES6 版本的 TypeScript 语言中 , 可以定义 " 箭头函数 " , 箭头函数有如下特点 : 省略 function 关键字 ; 使用 => 箭头符号定义函数 ; 将下面的正常函数 ,...转为箭头函数 , function add(a: number, b: number): number { return a + b; } 对应的箭头函数如下 : 将 箭头函数 赋值给变量 add
原文地址:https://dev.to/bhagatparwinder/arrow-function-and-the-new-arguments-super-keyword-2d1l 我们之前已经学过了箭头函数以及它的...当涉及到 this 关键字的时候箭头函数会表现的不同,同时它也没有绑定的 arguments、new 和 super 关键字。...,当和 new 一起使用时会报错。...const foo = () => { }; const bar = new foo(); // foo is not a constructor 箭头函数没有 Construct 内部方法。...Super 按照 ES 规范箭头函数不能与 super 关键字一起使用。
@toc摘要记录此文章是因为本人是vue初学者,刚看完尚硅谷的教学视频,到现在为止对箭头函数和普通函数的this指向问题直接弄混了,所以特意查阅相关博客并记录下自己的总结。...详细说明注意点1:不被vue所管理的函数(定时器的回调函数、ajax的回调函数等、Promise的回调函数=》JS引擎帮忙调用)那么请使用箭头函数,因为箭头函数中this指代vm或者vc。...举例普通函数情况在全局函数中,普通函数中this =》window当普通函数被作为某个对象的方法调用时,this就等于那个对象计算属性computed和监视属性watch情况1....计算属性computed和监视属性watch直接用普通函数除上述2种情况外,所有方法都在methods中定义好,不要在$on的配置项中去定义函数;另外如果你怕this指向混乱,你直接在外部定义个变量去存储当前...举例说明就是,你要使用\$on去触发自定义事件,你先定义一个变量存储当前组件的vm和vc,然后你在\$on的配置项的函数中直接用定义好的那个this变量去设置值,不要在配置项中的函数中用this,因为你不知道局部方法中这个
领取专属 10元无门槛券
手把手带您无忧上云