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

10 - JavaScript 函数 & 11 - JavaScript 函数的种类

原文地址:https://dev.to/bhagatparwinder/functions-in-javascript-5ehm 什么是函数?它在 JavaScript 扮演什么角色?...函数就是 JavaScript 可以被执行的代码块。函数有如下必备部分: 1. 使用 function 关键字声明; 2. 函数名字紧跟其后,它就是被调用时使用的名字。 3....你可以函数传递参数,那些值可以是动态的。 4. 形参传递给函数的实参。 5. 当函数被调用时,代码块将会被执行。 6. 代码块是被括号包裹的。...JavaScript 自带的函数 你不是要经常写函数JavaScript 自带了许多可以直接使用的方法。...函数声明在其他代码执行之前被加载,然而函数表达式只有等到 JavaScript 解释器执行到所在代码行时才被加载。这就是 JavaScript hoisting[1] 的原理。

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

JavaScript函数基础

函数能让开发者把JavaScript代码变得更有效率,而且更能重复吃用。函数解决思路:把大问题变成小问题,分割的思路。...函数类型2: function Name(Arguments){ Body } Arguments可以是一个或多个参数,以逗号分开。...函数Body可以访问参数,此时这些参数就像已经完成初始化工作的局部变量。 注意:函数的传递的参数很像函数内部的局部变量,但在函数内部改变函数的参数,却不影响函数外的任何事物。 具有返回值的函数。...返回值能让你从函数返回一段数据。...功能:驱动网页、带来交互性的JavaScript代码。 引用函数和调用函数的差别,可以通过查看函数名称后面是否跟随了括号()。引用函数只会单独出现,但调用函数一定有括号,有时还带有参数。

1.5K60

JavaScript的箭头函数

前言 本文可以让你了解所有有关JavaScript箭头函数的信息。我们将告诉你如何使用ES6的箭头语法,以及代码中使用箭头函数时需要注意的一些常见错误。你会看到很多例子来说明它们是如何工作的。...关键字 没有大括号{} JavaScript函数是一等公民。...你可以函数存储变量,把它们作为参数传递给其他函数,并从其他函数把它们作为值返回。你可以使用JavaScript箭头函数来做所有这些事情。 无圆括号语法 在上述示例函数是没有参数的。...button元素?...不正常工作的情况 箭头函数并不只是JavaScript编写函数的一种花里胡哨的新方法。它们有自己的局限性,这意味着在有些情况下你不想使用箭头函数。让我们看看更多的例子。

2.1K20

理解JavaScript函数方法

函数声明被提升到上下文的顶部(函数所在的作用域)。也就是说我们可以函数声明之前使用它,并且不会产生错误。...2.将函数作为值 我可以像其他对象那样使用函数,比如,可以将它们赋值给另一个变量,可以将将它们作为对象的属性值,可以作为参数传递给其他函数,还可以作为其他函数的返回值。   ...1.可以将它们赋值给另一个变量 function sayHi() { console.log('Hi!')...这是因为我们传递给函数的实参实际上被保存到了一个类似于数组的对象,arguments,数组可以包含任意数量的元素,所以可以我们向函数传递任意数量的实参。...我们访问这些参数的时候可以通过数组下表的方式访问。

55720

JavaScript函数的this(二)

this 的常见用途:访问对象属性和方法:通过使用 this,我们可以在对象方法访问和操作对象的属性和方法。...创建和初始化对象:通过构造函数和 this,我们可以创建对象时设置和初始化对象的属性。...;console.log(john.name); // 输出 "John"console.log(john.age); // 输出 25修改执行上下文:通过使用 call() 或 apply(),我们可以特定的上下文中调用函数...避免闭包的问题:通过使用 this,我们可以避免闭包的作用域问题,确保访问正确的变量和对象。...需要注意的是,this 的值函数被调用时确定,并且函数执行过程可能会发生变化。了解 this 的规则和用法非常重要,以避免代码中出现错误或意外行为。

49910

JavaScript函数的this(一)

JavaScript,关键字 this 是一个特殊的对象引用,它指向当前执行函数的上下文对象。this的值函数被调用时确定,并且可能根据函数的调用方式和上下文的不同而变化。...this 的规则全局上下文中的 this:全局上下文中,this 指向全局对象(浏览器环境通常是 window 对象)。...console.log(this); // 输出全局对象,如 window 对象(浏览器环境函数的 this:函数内部,this 的值取决于函数被调用的方式。...作为函数调用:如果函数作为普通函数调用,this 指向全局对象(浏览器环境通常是 window 对象)。...箭头函数的 this:箭头函数的 this 值是定义时确定的,它捕获了包含它的函数的 this 值。

58520

JavaScript的高阶函数

什么是高阶函数 高阶函数是对其他函数进行操作的函数可以将它们作为参数或通过返回它们。简单来说,高阶函数是一个函数,它接收函数作为参数或将函数作为输出返回。...javascript设计模式和开发实践》是这样定义的: 1.函数可以作为参数被传递; 2.函数可以作为返回值输出。...示例 Array.prototype.map 该map()方法通过调用作为输入数组每个元素的参数提供的回调函数来创建一个新数组。...该map()方法将从回调函数获取每个返回值,并使用这些值创建一个新数组。传递给回调函数map()方法接受3个参数:element,index,和array。...(item) { return item * 2; } console.log(arr2) 结论: 高阶函数是一个函数,它可以接收函数作为参数,甚至可以返回一个函数

1.2K20

JavaScriptisPrototypeOf函数详解

JavaScriptisPrototypeOf函数详解 有时看一些框架源码的时候,会碰到 isPrototypeOf() 这个函数,那么这个函数有什么作用呢?...这个函数理解的关键是原型链上,这个据说是JavaScript的三座大山之一。 这里不详述其中的原理,简单的来讲就是3点: 1. 函数对象,都会天生自带一个prototype原型属性。 2....确切的说Object 的原型(prototype)是 human 的原型链上。...示例4,Object.prototype是否是内置类的原型: JavaScript内置类Number、String、Boolean、Function、Array因为都是继承Object,所以下面的输出也都是...(prototype),而 isPrototypeOf 又是判断类的原型对象(prototype)是否实例的原型链上。

48540

.NET Core 运行 JavaScript

一.前言 .NET Framework 时,我们可以通过V8.NET等组件来运行 JavaScript,不过目前我看了好几个开源组件包括V8.NET都还不支持 .NET Core ,我们如何在 .NET...Core 运行 JavaScript 呢,答案是使用 NodeServices。...关于为何有 .NET Core 执行 JavaScript 这种需求,比较特殊,举个栗子:当你做模拟登录时,目标网站可能采用一些加密算法来计算特殊的值,如果你要完全模拟,那么除了用C#翻译这个算法还有个办法就是直接将这段加密算法...二.什么是 NodeServices NodeServices 是一个 ASP.NET Core 中间件,将它添加到 ASP.NET Core 管道,该中间件调用Node在运行时执行JavaScript...四.结束 NodeServices 可以使 .NET Core 接入 NodeJs 生态,创造了更多的可能,大家可以去探索更多的用法。

3.9K20

JavaScript的compose函数和pipe函数

compose函数 compose函数可以将需要嵌套执行的函数平铺,嵌套执行就是一个函数的返回值将作为另一个函数的参数。...res = calculate(10); console.log(res); // 200 但是根据我们之前讲的函数式编程,我们可以将复杂的几个步骤拆成几个简单的可复用的简单步骤,于是我们拆出了一个加法函数和一个乘法函数...所以我们的目标就很明确了,我们需要一个像这样的compose方法: // 参数从右往左执行,所以multiply在前,add在后 let res = compose(multiply, add)(10); 讲这个之前我们先来看一个需要用到的函数...Array.prototype.reduce Array.prototype.reduce 数组的reduce方法可以实现一个累加效果,它接收两个参数,第一个是一个累加器方法,第二个是初始化值。...compose = (...args) => x => args.reduceRight((res, cb) => cb(res), x); Redux的中间件就是用compose实现的,webpackloader

1.5K22

JavaScript函数式编程

2) let add = (a) => { return (b) => { return a + b; } } // 我们也可以将返回的函数赋给一个变量,这个变量也就变成一个能特定加a...同时函数运行也不改变任何外部数据,它只通过它的返回值与外部通讯。...我们的目标是尽可能的减少副作用,将函数写为纯函数,下面这个不纯的函数使用了new Date,每次运行结果不一样,是不纯的: ?...要给为纯函数可以将依赖注入进去,所谓依赖注入就是将不纯的部分提取出来作为参数,这样我们可以让副作用代码集中在外部,远离核心代码,保证核心代码的稳定性 // 依赖注入 const foo = (d, log...运算结果通过返回值返回给外部 可变性和不可变性 可变性:指一个变量创建以后可以任意修改 不可变性: 指一个变量被创建后永远不会发生改变,不可变性是函数式编程的核心概念 下面是一个可变的例子: ?

1K41

JavaScript的惰性载入函数

定义 惰性载入函数表示函数执行的分支仅会发生一次,有两种实现惰性载入函数的方式,第一种是函数被调用时再处理,第一次调用,该函数会覆盖为另外一个按合适方式执行的函数,这样任何对函数的调用都不用再经过执行的分支了...为了解决以上问题,JavaScript中出现一种名为惰性载入的技巧。...,最后一步便是调用新赋的函数,下一次调用test1()的时候就会直接调用被分配的函数,就不会再走if语句了,这样就可以提高性能。...,通过var来定义函数每个if分支return一个函数。...,很多JavaScript库在在加载的时候就根据浏览器不同而执行很多分支,把所有东西实现设置好,而惰性载入函数将计算延迟,不影响初始脚本的执行时间。

86220
领券