首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

前端高频面试题(附答案)

箭头函数与普通函数区别(1)箭头函数比普通函数更加简洁如果没有参数,就直接写一个空括号即可如果只有一个参数,可以省去参数括号如果有多个参数,用逗号分割如果函数返回值只有一句,可以省略大括号如果函数不需要返回值...所以箭头函数this指向在它在定义时已经确定了,之后不会改变。...new步骤在上面已经说过了,实际上第二步就是函数this指向该对象。...:首先会进入Promise,打印出3,之后进入下面的Promise,打印出7;遇到了定时器,将其加入宏任务队列;执行Promise  presolve,状态变为resolved,返回值为1;执行Promise...当然这是简单版响应式实现,如果需要实现一个 Vue 响应式,需要在 get 收集依赖,在 set 派发更新,之所以 Vue3.0 要使用 Proxy 替换原本 API 原因在于 Proxy 无需一层层递归为每个属性添加代理

62020

ES6箭头函数

箭头函数具有更短语法形式,隐式绑定了this,并且没有自己this、arguments、super 或 new.target。基本语法:箭头函数使用箭头(=>)来分隔参数和函数。...在上面的示例,我们定义了一个简单箭头函数hello,它不带参数,并在函数打印了一条消息。隐式返回:箭头函数还具有隐式返回特性。...如果函数只有一条语句,可以省略大括号,并且该语句结果将作为返回值。...由于函数只有一条语句,我们可以省略大括号并直接返回结果。参数和括号:如果箭头函数只有一个参数,可以省略参数周围括号。但是,当没有参数或有多个参数时,必须使用括号。...由于箭头函数继承了包含它父级作用域this值,因此this.name正确地引用person对象name属性。

20640
您找到你想要的搜索结果了吗?
是的
没有找到

ES6 箭头函数 Arrow Function

ES6 箭头函数语法 3. ES6 箭头函数返回值 4. 箭头函数 this 到底是谁 ?...前言 ---- ES6 新增了一种新函数: 箭头函数 Arrow Function 箭头函数相当于匿名函数,简化了函数定义,原函数 function 关键字和函数名都删掉,并使用 => 连接参数和函数...ES6 箭头函数返回值 ---- 当方法体只有一条语句时可以省略花括号 // 普通写法 // const math = (num1, num2) => { // return num1 + num2 /...=> ({ name: 'liang' }), 箭头函数直接返回一个数据写法,多用于 vue,uniapp 开发 export default { name: "my-search", props:...箭头函数 this 到底是谁 ? ---- 箭头函数 this 指向问题标准答案: 向外层作用域中一层层查找 this,直到有 this 定义

23410

vue1

目录 vue vue框架优势 页面引入 总结 vue实例内部参数 声明实例是否用一个变量接收 插值表达式 文本指令 方法指令 JSvar、let、const、不写区别 function、箭头函数...:继承了前两大框架优点、摒弃了前两大框架缺点,没有前两个框架健全、vue优点:中文API、单页面应用、组件化开发、数据双向绑定、虚拟DOM、数据驱动思想(操作变量,)(相比于DOM驱动(找到数据某一个点...在上面的例子,跳出for循环,再使用sum变量就会报错,有着严格作用域,变量只作用域当前隶属代码,不可重复定义同一个变量,不可在声明之前调用,必须先定义再使用,会报错,循环可以用let 注意...// 如果箭头函数没有函数,只有返回值 let f4 = (n1, n2) => n1 + n2; let res = f4(10, 25); console.log(res...; function、箭头函数区别 作用域: 箭头函数指向其定义环境,箭头函数内部this指向无法通过其他方式改变,指向是外部this,在箭头函数调用 this 时,仅仅是简单沿着作用域链向上寻找

55130

不一样JavaScript

3.2.1 源代码 这里源代码是多模块,多文件联合包括框架特有语法糖、预编译样式、附件源文件(图片等)、标准JavaScript代码等众多复合元素,扩展名包含但不限于:.js,.vue,.scss,...在前端架构过程,我们为了达到业务最大程度复用,有时候会对代码进行不同运行平台转换,这个案例是一段Vue代码编译成微信小程序代码。 ?...完成上面的转换需要4步: data函数转换成data属性,并且原有data函数blockStatement作为箭头函数函数主题 methods属性add和minus提取出来放到methods...,然后创建data属性并使用前面保存函数作为箭头函数函数 traverse(ast, { ObjectMethod(path) { if (path.node.key.name...)}) 可多次调用traverse对AST进行不同业务处理 几个关键函数调用 transfrom.js(vue代码转小程序代码)文件处理第二步:methods属性全部移到外面并且删除methods

45120

【译】使用箭头函数精简你 Vue 模块

在这个过程我也遇到了很多坑,所以想借此机会分享一下我从中学到东西以及总结出来一些规范,这些规范以后都将会落实到我 Vue 项目中。 <!...我们刚刚了解到了很多优化点,还知道了箭头函数里面的 this 是一个常量,它继承自外围作用域,除此之外,箭头函数还有一些函数定义新特性,前面的例子我们定义函数时候用是传统级结构方法(花括号包裹...),箭头函数我们可以使用一种更加简洁代码结构来定义函数,看下面的两段代码: var sum = (a,b) => {return a+b;} // 传统级结构,必须要有 return var...title: '', description: '', } } } ... ---- Vue ES6 规范 踩过那么多坑之后,我总结出了以下几条 Vue 模块定义规范: 使用 ES6...方法定义规范来定义所有顶层方法 使用箭头函数定义所有在顶层方法里面的回调函数 使用“简单结构”来定义 data 函数 希望这些规范能够让你 Vue 模块代码和组件更加吸引人并且更加可读

54820

【译】使用箭头函数精简你 Vue 模块

在这个过程我也遇到了很多坑,所以想借此机会分享一下我从中学到东西以及总结出来一些规范,这些规范以后都将会落实到我 Vue 项目中。 <!...我们刚刚了解到了很多优化点,还知道了箭头函数里面的 this 是一个常量,它继承自外围作用域,除此之外,箭头函数还有一些函数定义新特性,前面的例子我们定义函数时候用是传统级结构方法(花括号包裹...),箭头函数我们可以使用一种更加简洁代码结构来定义函数,看下面的两段代码: var sum = (a,b) => {return a+b;} // 传统级结构,必须要有 return var...Vue ES6 规范 踩过那么多坑之后,我总结出了以下几条 Vue 模块定义规范: 使用 ES6 方法定义规范来定义所有顶层方法 使用箭头函数定义所有在顶层方法里面的回调函数 使用“简单结构”来定义...data 函数 希望这些规范能够让你 Vue 模块代码和组件更加吸引人并且更加可读,Thx!

1.2K80

JS 语法糖 1 —— 箭头函数

let foo = () => { a: 1 }; foo() // undefined 上面代码,原始意图是返回一个对象{ a: 1 },但是由于引擎认为大括号是代码,所以执行了一行语句a: 1。...这时,a 可以被解释为语句标签,因此实际执行语句是1;,然后函数就结束了,没有返回值。 2.用法 箭头函数可以与变量解构结合使用。...箭头函数 this 指向固定化,并不是因为箭头函数内部有绑定 this 机制,实际原因是箭头函数根本没有自己 this,导致内部 this 就是外层代码 this。...当通过 new 调用函数时,执行 construct 方法,创建一个实例对象,然后再执行函数 this 绑定到实例上。当直接调用时候,执行 call 方法,执行函数。...g 写成箭头函数报错。

2K10

阿里面试官:如何给所有的async函数添加trycatch?

async函数,获取该函数body(函数包含代码) 3)创建try/catch语句原来asyncbody放入其中 4)最后asyncbody替换成创建try/catch语句 babel...AssignmentExpression 赋值表达式 通常指函数返回值赋值给变量 UpdateExpression 更新表达式 通常指更新成员值,例如 i++ Literal 字面量 字面量 BooleanLiteral...} } 对应AST结构 通过AST结构对比,插件核心就是原始函数body放到try语句中 babel插件开发 我曾在《「历时8个月」10万字前端知识体系总结(工程化篇)》聊过如何开发一个...body let info = asyncPath.node.body; // 函数放到try语句body tryNode.block.body.push...; // 父节点原来函数放到try语句中 tryNode.block.body.push(...info.body); // 父节点内容替换成新创建try

98350

简单说 JavaScript箭头函数

说明 箭头函数本质还是函数,我们来看看他与JavaScript普通函数区别,先看看写法上区别。 ?...解释 写箭头函数,我们记住一个顺序就好,参数、箭头、函数、这个顺序记住就足够了,参数、箭头、函数、这三个是必须,函数名可以没有,但这三项必须有,一些简写方式也是简写这三项里东西。...{} 可以省略 //不简写 var demo = (x) =>{ console.log(x); } //简写 var demo = x => console.log(x); 3、函数只有一条返回语句时...箭头函数放 函数 地方在 {}内, 函数 就 一句 {} 可写可不写, 函数 不止一句,{} 必须写。 如果不知道,() {} 写不写,该不该省略,那就写,写了不会错。...,在上面这段代码对象括号是不能封闭作用域,所以此时this还是指向window。

51320

JavaScript百炼成仙读书笔记

for循环和while循环语法 for循环: for(语句1; 语句2; 语句3){ 被执行代码 } 语句1:在循环(代码)开始前执行 语句2:定于运行循环(代码条件...语句3:在循环(代码)已被执行之后执行 while循环:会在指定条件为真时循环执行代码 while(条件){ 需要执行代码 } 5、对象内容遍历 使用typeof来查看...,使用箭头声明函数 如果函数仅仅是一个简单return语句,那么函数大括号和return关键字都可以省略。...关于箭头函数this用法,还得多琢磨琢磨!...箭头函数this指向是定 义时所在作用域,而不是执行时作用域 只要使用了箭头函数,就不要管这个函数本身了,在外面寻找最近大括号,然后看这个大括号处在怎样环境, this就指向它!

22630

15.Rust-函数

fn 函数名称([参数:数据类型]) -> 返回值 { // 函数代码}参数用于值传递给函数内部语句。参数是可选。一个 “不” 返回值函数。实际上会返回一个单元类型 ()。...函数参数需要标注类型,就和变量一样,如果函数返回一个值,返回类型必须在箭头 -> 之后指定。函数最后表达式将作为返回值。...在 main()函数调用 hello()函数。函数返回值函数在代码执行完成后,除了控制权还给调用者之外,还可以携带值给它调用者。函数可以返回值给它调用者。称为 函数返回值。...有 returnfn 函数名称() -> 返回类型 { return 返回值;}没有 return如果函数代码没有使用 return 关键字,那么函数会默认使用最后一条语句执行结果作为返回值。...fn 函数名称() -> 返回类型 { // 业务逻辑 返回值 // 没有分号则表示返回值}注:最后一条语句执行结果,必须和函数定义时返回数据类型一样,不然会编译会出错

57520

对比讲解lambda表达式与传统接口函数实现方式

答案就是lambda表达式表达接口函数实现,所以我们有必要做一下准备工作。在传统开发方式下,我们不习惯代码传递给函数。...,这是经典OOP实现样式。...,paramN)- > { //代码; } 首先我们知道lambda表达式,表达是接口函数 箭头左侧是函数逗号分隔形式参数列表 箭头右侧是函数代码 现在,我们使用lambda表达式重构一下第一小节代码...Printer printer = toPrint->System.out.println(toPrint); 即使没有在箭头左侧指定参数类型,编译器也会从接口方法形式参数推断出其类型 当只有一个参数时候...结论 lambda表达式表达是接口函数,箭头左侧是函数参数,箭头右侧是函数。函数参数类型和返回值类型都可以省略,程序会根据接口定义上下文自动确定数据类型。

36920

恕我直言你可能真的不会java第1篇:lambda表达式会用了么?

答案就是lambda表达式表达接口函数实现,所以我们有必要做一下准备工作。在传统开发方式下,我们不习惯代码传递给函数。...,这是经典OOP实现样式。...,paramN)- > { //代码; } 首先我们知道lambda表达式,表达是接口函数 箭头左侧是函数逗号分隔形式参数列表 箭头右侧是函数代码 现在,我们使用lambda表达式重构一下第一小节代码...Printer printer = toPrint->System.out.println(toPrint); 即使没有在箭头左侧指定参数类型,编译器也会从接口方法形式参数推断出其类型 当只有一个参数时候...结论 lambda表达式表达是接口函数,箭头左侧是函数参数,箭头右侧是函数。函数参数类型和返回值类型都可以省略,程序会根据接口定义上下文自动确定数据类型。

35810

JS箭头函数之:为何用?怎么用?何时用?

el.length; // [2, 3, 4, 7] }); // 当箭头函数只有一个`return`语句时,可以省略`return`关键字和方法体花括号 elements.map(el =>...这是箭头函数理想位置,特别是如果您生成函数是有状态,同时想引用对象某些内容。...例如在Vue.js,有一种通用模式,就是使用mapStateVuex存储各个部分,直接包含到Vue组件。...(不推荐使用场景) 使用new操作符 箭头函数不能用作构造器,和new一起使用会抛出错误。...深层调用 如果你函数定义为箭头函数,并且在他们之间来回调用,当你调试bug时候你将被代码困惑,甚至得到如下错误信息: {anonymous}(){anonymous}(){anonymous}()

3.9K10

校招前端二面经典面试题(附答案)_2023-03-02

(1)箭头函数比普通函数更加简洁 如果没有参数,就直接写一个空括号即可 如果只有一个参数,可以省去参数括号 如果有多个参数,用逗号分割 如果函数返回值只有一句,可以省略大括号...如果函数不需要返回值,且只有一句话,可以给这个语句前面加一个void关键字。...所以箭头函数this指向在它在定义时一家确定了,之后不会改变。...,由于没有代码,你不能在⼀个返回表达式箭头函数设置断点,如果你在⼀个.then代码中使⽤调试器步进(step-over)功能,调试器并不会进⼊后续.then代码,因为调试器只能跟踪同步代码每...词法环境内部有两个组件:加粗样式:环境记录器:用来储存变量个函数声明实际位置外部环境引用:可以访问父级作用域 (3)创建变量环境组件 变量环境也是一个词法环境,其环境记录器持有变量声明语句在执行上下文中创建绑定关系

77040

ES6常用知识点小结

也就是说,var声明变量由于不存在级作用域所以可以在全局环境调用,而let声明变量由于存在级作用域所以不能在全局环境调用。...它会首先寻找该执行环境是否存在 i,没有找到,因为 i 是级作用域,就沿着作用域链继续向上到了其所在代码执行环境,找到了i=6,于是输出了6,即a[6]();结果为6。...+ 5 '染色,细胞核时隐时现,'+s1+'核糖在mRNA上穿梭忙碌,'+'几千种酶各司其职,活化能狠狠打折。'...54 //注意,采用这种写法时,变量声明和赋值是一 55 // v ---> n,那么此时n就是vue,而不是undefined了 56 var {v:n} = {v:'vue',r:'react...3 } 如果函数只有一条语句,可以这样写: 1 var fun = ()=>Math.random()*10 2 console.log(fun()); 这样子调用这个箭头函数就会直接返回这条语句

83120
领券