首页
学习
活动
专区
工具
TVP
发布

JS面试之函数(1)

前言 这段时间突然发现JS原生好多东西都忘记了,但有些东西确实很重要,所以又重新再梳理一次。...主要有函数的3种定义方法,ES5函数this指向,call与appl用法,JS常见的4种设计模式,原型链,原型链和继承的方式(ES5和ES6) 1.函数的3种定义方法 1.1 函数声明 //...GetSum(num1,num2) 1.4 三种方法的对比 1.函数声明有预解析,而且函数声明的优先级高于变量; 2.使用Function构造函数定义函数的方式是一个函数表达式,这种方式会导致解析两次代码...对象.apply(新this对象,[实参1,实参2,实参3.....]) 4.2 call和apply用法 1.间接调用函数,改变作用域的this值 2.劫持其他对象的方法 var foo...继承的实现方式 8.高阶函数 8.1定义 函数的参数是函数或返回函数 8.2 常见的高阶函数 map,reduce,filter,sort 8.3 柯里化 1.定义:只传递给函数一部分参数来调用它

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

JS进阶(1) —— 人人都能懂的构造函数

本文将从以下几个方面来探讨构造函数1.什么是构造函数 2.为什么要使用构造函数 3.构造函数的执行过程 4.构造函数的返回值 1.什么是构造函数 在 JavaScript 中,用 new 关键字来调用的函数...(4) 默认返回 this 由于函数体内部的 this 指向新创建的内存空间,默认返回 this ,就相当于默认返回了该内存空间,也就是上图中的 #f1。此时,#f1的内存空间被变量 p1 所接受。...也就是说 p1 这个变量,保存的内存地址就是 #f1,同时被标记为 Person 的实例。 以上就是构造函数的整个执行过程。 4.构造函数的返回值 构造函数执行过程的最后一步是默认返回 this 。...(1)没有手动添加返回值,默认返回 this function Person1() { this.name = 'zhangsan'; } var p1 = new Person1(); 按照上面讲的...首先,当用 new 关键字调用时,产生一个新的内存空间 #f11,并标记为 Person1 的实例;接着,函数体内部的 this 指向该内存空间 #f11;执行函数体内部的代码;由于函数体内部的 this

80220

JS函数

函数定义        函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块;       函数就是包裹在花括号中的代码块       function 函数名()       {        ...这里是要执行的代码      } 二 函数的声明和调用    函数的声明必须使用关键字function    关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数    函数本身不会自动运行...,只有当调用该函数时,才会执行函数内的代码    函数可以通过其名字加上括号中的参数进行调用 三 带有返回值的参数      使用return 语句来返回值 可以将返回值赋值给一个变量,然后对变量进行操作...四 arguments对象    在函数代码中,使用特殊对象 arguments存储函数调用传递给该函数的所有参数   可以用 arguments 对象检测函数的参数个数,引用属性 arguments.length...sun+=arguments[i]; } return sun; } var s= sum(2,3,4,5);//虽然sum函数时没有参数的

5.2K20

Zenlayer合并大河云联的背后:1+1如何大于2?

据全球市场研究机构Gartner预测,2016年-2020年全球SD-WAN市场复合增长率高达57.4%;2018年,企业部署SD-WAN的服务规模从2015年的不足1%增长到30%。...2019年1月Zenlayer正式成为首批通过可信云SD-WAN解决方案认证的服务商,而此次并购能够进一步增强Zenlayer的研发能力和技术规范,有望为整个行业提供更多标杆性的优秀产品与解决方案,积极推动云网融合的发展与落地...1+1如何大于2? 此次并购,对Zenlayer而言是一个崭新的开始。...但与此同时,各路玩家纷纷挤进赛道,试图在这一领域分一杯羹,拿得一手好牌的Zenlayer能否发挥1+1>2的优势,在后续的发展中激流勇进,这将充分考验Zenlayer的业务整合速度、战略眼光以及超强的执行力

82010

如何编写高质量的 JS 函数1) -- 敲山震虎篇

JS 肯定不是敌人啦,但是要想掌握 JS函数,要更轻松的编写高质量的函数,那就要掌握在 JS函数的执行机制。 怎么去解释函数的执行机制呢?...三、谈谈底层实现 1、计算机中最本质的闭包解释 函数在执行的时候,都会形成一个全新的私有作用域,也叫私有栈内存。 目的有如下两点: 第一点:把原有堆内存中存储的字符串变成真正的 JS 代码。...四、JS 引擎是如何执行函数 上面从很多方面分析了函数执行的机制。现在来简要分析一下,JS 引擎是如何执行函数的。 推荐一篇博客《探索JS引擎工作原理》,我将在此篇博客的基础上分析一些很重要的细节。...(x + y + z) } //返回函数B的引用 return B } //执行A,返回B var C = A(1) //执行函数B C(1) 执行 A 函数JS 引擎构造的 ESCstack 结构如下...: 简称 A 图: 执行 B 函数JS 引擎构造的 ESCstack 结构如下: 简称 B 图: 1、局部变量是如何被保存起来的 核心代码: EC(B) = { [scope]:AO(A),

1.3K20

js箭头函数

引入箭头函数作用 引入箭头函数的作用:更简短的函数并且不绑定this 更简短的函数 let sum = (x,y,z) => { return x+y+z; } 不绑定this 在箭头函数出现之前,每个新定义的函数都有他自己的...(在构造函数的情况下是一个新对象,在严格模式的函数调用中为 undefined,如果该函数被作为“对象方法”调用则为基础对象等)。...返回对象字面量时 箭头函数返回简单值时可以简写成: let sum = ( x, y ) => x + y but返回对象字面量时不口以这样var func = () => {foo: 1},需要用圆括号括起来...var func = () => ({foo: 1}); ---- 以下跟箭头函数没啥关系咯~~ 函数的默认参数 没有默认参数时要进行检查检查~ function multiply(a, b) {...b : 1; return a * b; } 有了默认参数后~优雅的写代码 function multiply(a, b = 1) { return a * b; }

4.4K10

Js箭头函数

Js箭头函数 箭头函数是ES6新增的语法,提供了一种更加简洁的函数书写方式,类似于匿名函数,并且简化了函数定义。 完整写法 完整写法类似于匿名函数,省略了function关键字。...(a); // 1 return a + a; } s(1); 省略大括号 当函数体只有一行语句时,可以省略{},并且会自动return这条语句的返回值。...s(1)); // 2 返回对象字面量 省略写法返回对象时注意需要使用()将对象包裹,否则浏览器会把对象的{}解析为箭头函数函数体的开始和结束标记。...(this); } } obj.s1(); // Window ... obj.s2(); // {s1: ƒ, s2: ƒ} /* 在调用时运行的环境是Window,而s1为箭头函数不改变...ss1(3); ss2(3); } s(1, 2); 不能用作构造器 箭头函数不能用作构造器,使用new实例化时会抛出异常。

4.9K20
领券