第4章 函数 4.1 参数默认值 ES5中定义函数时,不能指定参数的默认值。 ES6中定义函数时,可以指定参数的默认值。...//ES5中,只能变相实现参数默认值(函数内部加判断处理) function f1(username){ //传统的指定默认参数的方式 var username = username || 'zhangsan...var arr=[3,4,5]; f3(...arr);//输出:3 4 5 //ES5中,如果需要传递数组当参数,我们需要使用函数的apply方法 f3.apply(null,arr);//输出...:3 4 5 4.3 不定参数(可变参数/剩余参数) 不定参数是指,在函数中使用 命名参数 同时接收 不定数量 的 未命名参数,需要使用三个连续的点 (...) 。...这是一种语法糖(在原语法上的简化用法),ES5通过函数内部的arguments对象来达到类似效果。
第7章 函数 把一段相对独立的具有特定功能的代码块封装起来,形成一个独立实体,就是函数,起个名字(函数名),在后续开发中可以反复调用 函数的作用就是封装一段代码,将来可以重复使用 7.1 函数的声明及调用...7.1.1 声明 关键字声明 function 函数名(){ // 函数体 } 表达式声明 var fn = function() { // 函数体 } 特点: 函数声明的时候,函数体并不会执行...一个函数一般都特定的用来干 一件 事情 7.1.2 调用 调用函数的语法: 函数名(); 特点: 函数体只有在调用的时候才会执行,调用需要()进行调用。...7.4 函数相关的其它事情 7.4.1 匿名函数与自调用函数 匿名函数:没有名字的函数 匿名函数如何使用: 将匿名函数赋值给一个变量,这样就可以通过变量进行调用 var fun1 = function...7.4.2 函数本身也是值 * function fn() {} console.log(typeof fn); 函数作为参数 因为函数也是一种值类型,可以把函数作为另一个函数的参数,在另一个函数中调用
树状结构数据搜索 树状结构数据中搜索并返回匹配特定 branchName 的对象,我们可以编写一个递归函数。...下面是一个用 JavaScript 编写的示例函数,它接受树状数据和目标 branchName 作为参数,并返回找到的对象(如果有多个匹配,可以返回一个数组)。
第10章 箭头函数 ES6可以使用“箭头”(=>)定义函数,注意是普通函数,不要使用这种方式定义类(构造器)。...10.1 语法 1.具有一个参数并直接返回的函数 var f1 = a=>a; //相当于 var f1 = function(a){ return a;}; console.log(f1('hello...name":"老弟", "age":40}); } //var f5 = () => ({"name":"老弟", "age":40}); console.log(f5()); 6.直接作为事件处理函数...7.赋值为对象的方法 var obj = {}; obj.say = ()=>{return "hello,我是obj的say方法";} console.log(obj.say()); 8.作为回调函数...var f2 = ()=>{ console.log(this); }; f2(); } }; obj.say(); 箭头函数不能做构造函数,不能用new实例化
// require函数实现原理: function require(modulePath) { var regExp = /\w+$/g; var moduleName = regExp.exec
关键字声明必须有名字 关键字声明会函数提升,在预解析阶段就已创建,声明前后都可以调用 函数表达式类似于变量赋值 函数表达式没有函数名字 函数表达式没有变量提升,在执行阶段创建,必须在表达式执行之后才可以调用...凡是可以使用值的地方,就能使用函数。比如,可以把函数赋值给变量和对象的属性,也可以当作参数传入其他函数,或者作为函数的结果返回。函数只是一个可以执行的值,此外并无特殊之处。...那就是在函数的内部,再定义一个函数。...闭包就是函数f2,即能够读取其他函数内部变量的函数。 由于在JavaScript语言中,只有函数内部的子函数才能读取内部变量, 因此可以把闭包简单理解成**“定义在一个函数内部的函数”**。...,其变量 n 变化一次; 因 函数f1被调用时,返回的结果是f2函数体,也就是说,f2函数被当作值返回给f1的调用者, 但是f2函数并没有在此时被调用执行, 所以整个 f1 函数体,无法判断子函数f2
第2章 构造函数 学习目标 构造函数语法 分析构造函数 构造函数和实例对象的关系 实例的 constructor 属性 instanceof 操作符 普通函数调用和构造函数调用的区别 构造函数的返回值...构造函数的问题 2.1 构造函数 JavaScript 语言使用构造函数作为对象的模板。...所谓 ”构造函数”,就是一个普通的函数,只不过我们专门用它来生成对象(new 构造函数),这样使用的函数,就是构造函数; 它提供模板,描述对象的基本结构。...this 返回,也就是这个新对象 } 构造函数和实例对象的关系 构造函数是根据具体的事物抽象出来的抽象模板 实例对象是根据抽象的构造函数模板得到的具体实例对象 实例对象由构造函数而来,一个构造函数可以生成很多具体的实例对象...小结 构造函数语法 分析构造函数 构造函数和实例对象的关系 实例的 constructor 属性 instanceof 操作符 构造函数的问题
大体还是四个方向吧: 架构 前端 数据 工程实践 然后就是书单了。。...前端 《WebComponent实战:探索PolymerJS、MozillaBrick、Bosonic与ReactJS框架》 《DOM启蒙》 《Polymer:面向未来的Web组件开发》 《响应式Web...设计性能优化》 《Backbone.js应用程序开发》 《O'Reilly:基于MVC的JavaScriptWeb富应用开发》 《JavaScript框架设计》 《CSS禅意花园(修订版)》 《JavaScript...函数式编程》 《移动应用UI设计模式(第2版)》 《网页设计创意书(卷3)》 架构 《软件架构师的12项修炼(技术技能篇)》 《服务设计模式:SOAP/WSDL与RESTfulWeb服务设计解决方案》...Scala并发编程》 《快学Scala》 《WebKit技术内幕》 《Spring源码深度解析》 《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》 《Lucene实战(第2版)》 《Java8函数式编程
前端中的函数式编程 函数式编程出现的时间很早,但在近几年才慢慢在前端中有所表现,个人觉得主要原因在于,前端技术的快速发展虽然足以支持日益复杂的页面交互需求,但我们仍然需要一种能够更好表达交互的范式或者框架...而函数式编程在这方面还是挺适合前端的,列举我觉得最重要的两个点: 前端麻烦的异步问题,可以由函数式编程中的异步计算来解决 声明式编程基本被业界证明是前端UI编程的一种最佳实践方式 当然这些共性问题已经被发现了...,前端领域有很多特性、库或者框架来支持和应用函数式编程。...其实正如第2部分一开始讲的,函数式编程本身的异步处理、声明式等特性是很适合前端开发的,所以才导致前端技术发展过程中,多多少少有点向函数式编程靠近、借鉴的原因。...总结 函数式编程在前端中的应用广泛,在某些语法、框架中实际上都借鉴了函数式编程的思想,但我们可能并没有发觉。从前端目前的发展趋势来看,个人觉得函数式编程的应用还会继续下去,希望大家可以一起关注。
jquery介绍 jQuery是目前使用最广泛的javascript函数库。据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库。...jquery是一个函数库,一个js文件,页面用script标签引入这个js文件就可以使用。...json数据对象类似于JavaScript中的对象,但是它的键对应的值里面是没有函数方法的,值可以是普通变量,不支持undefined,值还可以是数组或者json对象。...jsonp和ajax原理完全不一样,不过jquery将它们封装成同一个函数。...,就完成了一个jsonp的接口,这个键值对是由$.ajax函数自动产生的。
本系列文章内容全部梳理自以下几个来源: 《JavaScript权威指南》 MDN web docs Github:smyhvae/web Github:goddyZhao/Translation/JavaScript 作为一个前端小白...正文-函数 在 JavaScript 里用 function 声明的就是函数,函数本质上也是一个对象,不同的函数调用方式有着不同的用途,下面就来讲讲函数。...这是因为,通常用来当做构造函数就很少会再以普通函数形式使用它。 函数定义 函数的定义大体上包含以下几部分:function 关键字、函数对象的变量标识符、形参列表、函数体、返回语句。...借助这个可以获取到自定义的函数名。 嵌套函数 嵌套函数就是在函数体中继续定义函数,需要跟函数的方法定义区别开来。...函数的方法定义,是将函数看成对象,定义它的属性,类型为函数,这个函数只是该函数对象的方法,并不是它的嵌套函数。 而嵌套函数需要在函数体部分再用 function 定义的函数,这些函数称为嵌套函数。
小程序http get工具函数 获取数据 export function get(url, data) { return request(url, "GET", data); } export function...FormData() for (var i in opts.data) { formData.append(i, opts.data[i]) } // 定义请求完成的处理函数
什么是函数? 函数是一个代码块,它可以执行特定的任务。在 JavaScript 中,函数通常通过关键字 function 来定义,包含在一对大括号 {} 中。...JavaScript 中,函数无处不在,在编写代码的每个部分都能找到函数的身影。函数不仅可以由开发者自定义,也有很多内置函数可供我们使用。...函数与方法 函数与方法有很大的相似性,方法是附加在对象上的函数。我们可以将对象视为拥有自己属性和方法的容器。...(5)); // 输出: 5 console.log(multiply(5, 2)); // 输出: 10 匿名函数和箭头函数 匿名函数是没有名称的函数,常用于回调函数中: setTimeout(function...; }, 1000); 箭头函数 箭头函数是一种更简洁的函数表示法,使用 => 语法。
过程中遇到的前端技术问题——javascript函数存储....背景介绍 我们都知道要想搭建一个前端页面基本需要如下3个要素: 元素(UI) 数据(Data) 事件/交互(Event) 在 数据驱动视图 的时代, 这三个要素的关系往往如下图所示: 趣谈前端 可视化搭建平台的设计思路往往也是基于上面的过程展开的...大致流程如下: 趣谈前端 不错, 理想很美好, 但是现实很_______...., 它只接受字符串参数,其可选参数为方法的入参,必填参数为方法体内容, 一个形象的例子: 趣谈前端 我们上述的代码中函数体的内容: new Function(`return ${value.replace...以上方案已经能实现前端存储函数的功能了, 但是为了更工程化和健壮性还需要做很多额外的处理和优化, 这样才能让更多人开箱即用的使用你的库.
前言 函数防抖和函数节流是在前端性能优化中老生常谈的话题,也是各位前端的童鞋必须要掌握的性能优化手段。...今天胡哥为大家分享函数防抖和函数节流的相关原理以及具体实践场景,希望能够给各位小伙伴在工作中提供相应业务场景的解决方案。...一、函数防抖 概念: 如在窗口resize、input输入、textarea输入等操作时,为避免性能浪费,额外无意义执行相关函数处理,需检测用户是否已操作完毕。...规则: 未完成操作时不执行相关函数处理 用户完成操作后,执行相关函数处理 案例:百度搜索推荐-根据用户的输入推荐相关搜索建议 一般思路: 监听input的input事件,用户输入数据即立刻执行查询查询...京东开放平台首席前端攻城狮。与你一起聊聊大前端,分享前端系统架构,框架实现原理,最新最高效的技术实践!
作为一名前端开发者,在日常工作中我们会频繁地使用各种 JavaScript 函数。为了帮助大家更高效地进行开发,我整理了一些常用且实用的 JavaScript 函数,希望能对大家的工作有所帮助。...map() 创建一个新数组,通过调用提供的函数处理原数组的每个元素。...console.log(data); } catch (error) { console.error(error); } } test() 以上是一些前端开发中常用的...JavaScript 函数和方法。...熟练掌握这些函数能够显著提高我们的开发效率,并使代码更加简洁、优雅。希望这篇文章对大家有所帮助!
函数的严格模式 高阶函数:函数作为参数传递、函数作为返回值传递 闭包:闭包的作用 递归:递归的两个条件 深拷贝和浅拷贝的区别 函数的介绍 函数:就是将一些功能或语句进行封装,...函数也是一个对象 使用typeof检查一个函数对象时,会返回function 函数的作用: 将大量重复的语句抽取出来,写在函数里,以后需要这些语句的时候,可以直接调用函数,避免重复劳动。...; console.log("welcome"); } 函数的定义/声明 方式一:利用函数关键字自定义函数(命名函数) 使用函数声明来创建一个函数(也就是 function 关键字)。...方式二:函数表达式(匿名函数) 使用函数表达式来创建一个函数。...函数名、函数体和函数加载问题(重要,请记住) 我们要记住:函数名 == 整个函数。
什么是立即执行函数 声明一个函数,并马上调用这个匿名函数就叫做立即执行函数。在定义好一个函数后,直接执行。...(function() {alert('立即执行函数')})() 用声明一个函数,用括号包起来,调用此函数。...立即执行函数的写法 有时候,我们定义函数以后,立即调用该函数,这时不能在函数的定义后面直接加圆括号,这会产生语法错误。...{alert('匿名函数')}() void function() {alert('匿名函数')}() new function() {alert('匿名函数')}() 立即执行函数的作用 1、不必为函数命名...立即执行函数的参数 (function(i) { ... })(j) 如果立即执行函数中需要全局变量,全局变量会被作为一个参数传递给立即执行函数。j代表是实参,i代表的是执行函数的形参。
递归函数与调用栈 总结一下最大调用栈溢出的问题 函数A、函数B、函数C依次调用,3个函数的执行上下文会被JavaScript解释器记录,可以把这些函数依次执行概括为一个调用栈。...当一个函数调用另一个函数时,就会有一个执行上下文被推到调用栈。递归就更逆天了,如果函数递归调用自己100次,调用栈就会被推入100个对象,之后会被弹出。...把函数实参解构为形参 这种方式可以提升代码的可读性。如果直接传入实参,不读函数中的代码或者加注释,不好理解这些参数怎么用。...高阶函数 文章中对高阶函数的定义,简单直白。 高阶函数就是操作函数的函数,它接收一个或多个函数作为参数并返回一个新函数。 虽然定义看着简单又直接,不过使用起来有点绕,但是效果惊人。...在函数式编程中,将上次计算结果进行缓存,如果再次计算时的参数相同,则直接返回缓存中的计算结果,这种缓存被称为函数记忆。
JS函数增强 函数属性 JavaScript中函数也是一个对象,那么对象中就可以有属性和方法,他有一些默认的属性 name 函数名 length 函数参数个数(ES6 ......副作用: 执行函数时,除了返回函数值之外,还对调用函数产生了附加的影响,比如修改了全局变量,修改参数或者改变外部的存储 纯函数的理解 输入 相同值的时候产生同样的输出 所以纯函数不能通过闭包的特性调用上层属性...,因为会随着上层属性变化函数输出内容 函数的输出和输入值以外的信息无关和设备的外部输出也无关 这个函数不能有语义上可观察到的 “副作用” 纯函数辨别案例 slice:slice截取数组时不会对原数组进行任何操作...,他是一个作用于函数的高阶技术,在其他的编程语言也有使用 只传递函数部分参数来调用,让它返回一个函数去处理剩余的参数这个过程就被成为柯里化 // 普通的函数 function foo(x,...组合函数理解和应用 当我们需要嵌套调用两个函数的时候,为了方便复用,我们可以写一个组合函数 var sum = pow(double(12)) 我们可以编写一个通用的组合函数来让我们使用组合函数更加的便捷
领取专属 10元无门槛券
手把手带您无忧上云