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

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

原文地址:https://dev.to/bhagatparwinder/functions-in-javascript-5ehm 什么是函数?它在 JavaScript 扮演什么角色?...函数就是 JavaScript 可以被执行代码块。函数有如下必备部分: 1. 使用 function 关键字声明; 2. 函数名字紧跟其后,它就是被调用时使用名字。 3....JavaScript 自带函数 你不是要经常写函数JavaScript 自带了许多可以直接使用方法。...你可以看到我第一函数调用时,需要参数我都传了。但第二次没有传递任何参数,它一样可以执行,这就是默认值起作用。当调用者不会给函数传参时,你就需要设置默认值。...函数声明在其他代码执行之前被加载,然而函数表达式只有等到 JavaScript 解释器执行到所在代码行时才被加载。这就是 JavaScript hoisting[1] 原理。

2.8K20

设计模式(3)-JavaScript构造函数模式是什么?

1 什么是构造函数模式 构造函数用于创建特定类型对象一不仅声明了使用对象,构造函数还可以接受参数以便第一次创建对象时候设置对象成员值。...你可以自定义自己构造函数,然后在里面声明自定义类型对象属性或方法。在JavaScript里,构造函数通常是认为用来实现实例JavaScript没有类概,但是有特殊构造函数。...通过new关键字来调用自定义构造函数,在构造函数内部,this关键字引用是新创建对象。 2 构造函数模式作用和注意事项 2.1 模式作用 1.用于创建特定类型对象。...2.第一次声明时候给对象赋值。 3.自己声明构造函数,赋予属性和方法。 2.2 注意事项 1.声明函数时候处理业务逻辑。 2.区分和单例区别,配合单例实现初始化。...如果该函数没有返回对象,则返回this(新对象); 在前面例子,xiaoMing和xiaoZhang分别保存着Person不同实例。

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

javascriptStrict模式

简介 我们都知道javascript是一个弱类型语言,在ES5之前,javascript程序编写具有很强随意性,我可以称之为懒散模式(sloppy mode)。...Strict mode主要用在一个完整脚本或者function,并不适用于block {}。如果在block中使用strict mode是不会生效。...,比如构造函数prototype: 'use strict'; delete Object.prototype; // throws a TypeError 禁止对象和函数参数重复属性: 'use...另外,在普通模式下,arguments是和命名参数相绑定,并且arguments[0]和arg同步变化,都表示第一个参数。...让javascript变得更加安全 在普通模式下,如果我们在一个函数f()调用this,那么this指向是全局对象。在strict模式下,这个this值是undefined。

84330

javascriptStrict模式

简介 我们都知道javascript是一个弱类型语言,在ES5之前,javascript程序编写具有很强随意性,我可以称之为懒散模式(sloppy mode)。...Strict mode主要用在一个完整脚本或者function,并不适用于block {}。 如果在block中使用strict mode是不会生效。...,比如构造函数prototype: 'use strict'; delete Object.prototype; // throws a TypeError 禁止对象和函数参数重复属性: 'use...另外,在普通模式下,arguments是和命名参数相绑定,并且arguments[0]和arg同步变化,都表示第一个参数。...让javascript变得更加安全 在普通模式下,如果我们在一个函数f()调用this,那么this指向是全局对象。在strict模式下,这个this值是undefined。

86230

JavaScript箭头函数

关键字 没有大括号{} 在JavaScript函数是一等公民。...你可以把函数存储在变量,把它们作为参数传递给其他函数,并从其他函数把它们作为值返回。你可以使用JavaScript箭头函数来做所有这些事情。 无圆括号语法 在上述示例函数是没有参数。...你可以把所有内容放在一,去掉大括号,并移除return关键字。 你已经在上面的示例中看到了这些漂亮代码是如何工作。...它们从父级继承this值,正是因为这个特点,在上面这种情况下就是很好选择。 不正常工作情况 箭头函数并不只是在JavaScript编写函数一种花里胡哨新方法。...,以解决JavaScriptthis关键字绑定问题。

2.1K20

JavaScript函数基础

函数能让开发者把JavaScript代码变得更有效率,而且更能重复吃用。函数解决思路:把大问题变成小问题,分割思路。...函数Body可以访问参数,此时这些参数就像已经完成初始化工作局部变量。 注意:函数传递参数很像函数内部局部变量,但在函数内部改变函数参数,却不影响函数任何事物。 具有返回值函数。...返回值能让你从函数返回一段数据。...前端开发原则一: 结构(html),样式(css)和行为(JavaScript)分离。 内容:网页HTML代码,它提供网页实际上如何拼接在一起结构,同时也是网页数据所在地。...外观:网页css代码,它主要改变内容样式,决定字体,色彩和排版最终效果。 功能:驱动网页、带来交互性JavaScript代码。

1.5K60

JavaScript高阶函数

在《javascript设计模式和开发实践》是这样定义: 1.函数可以作为参数被传递; 2.函数可以作为返回值输出。...示例 Array.prototype.map 该map()方法通过调用作为输入数组每个元素参数提供回调函数来创建一个新数组。...该map()方法将从回调函数获取每个返回值,并使用这些值创建一个新数组。传递给回调函数map()方法接受3个参数:element,index,和array。...假设我们有一个数组,我们想要创建一个新数组,其中包含第一个数组每个值两倍。让我们看看如何使用和不使用高阶函数来解决问题。...高阶函数就像常规函数一样,具有接收和返回其他函数附加能力,即参数和输出。

1.2K20

JavaScript函数this(一)

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

58220

JavaScript函数this(二)

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

49710

JavaScript 设计模式:创建模式

在日常生活,程序员在写代码时候可能会遇到很多错误,自然而然就会想出解决这些问题方法。不同项目中不同打印机开发解决方案彼此非常相似。这就是设计模式发挥作用地方。...设计模式是软件开发人员在软件开发过程面临常见问题解决方案。 让我们检查项目中设计模式以便更好地理解: 它通常基于 OOP。但是无论语言和技术如何,它都可以使用。...我们在 3 个标题下收集设计模式: 创意图案 结构模式 行为模式 在本文中,我将讨论创建模式: 创建模式 它是一种用于创建和管理对象模式。它们提供提高代码灵活性和可重用性对象创建机制。...这也类似于SOLID原则“单一职责原则”。 示例:我们已经来到最后一个示例,我们将在其中使用 Person 对象。...我谈到了什么是设计模式,并试图用 JavaScript 代码解释创意模式

42010

JavaScriptMonorepos,反模式

第一个问题是,如果希望开发人员安装其中一些软件包,版本号可能会混淆。如果包是紧密耦合,那么弄清楚包与包搭配使用可能会令人沮丧。...如果要大量修改软件包,则可能由于某些人可能依赖未公开API存在那个软件包而不得不增加主版本号。...现在有ESM模块 monorepos之前存在并拥有多个微包原因之一是为了改进绑定,确保没有使用功能不会绑定到应用程序。Lodash这样库很好地推广了这种模式。...如果有用户可以导入可选文件,但又不希望用户必须引用特定JavaScript文件,希望捆绑程序自动为环境选择正确格式,那么使用单独package.json就可以了。...结论 就像monorepos过度工程化并将太多特性分离到包中一样,将代码分割到太多存储库也是如此。当一种模式比另一种模式更有意义时,没有什么灵丹妙药。

1.7K00

30 - JavaScript 严格模式

原文地址:https://dev.to/bhagatparwinder/strict-mode-in-javascript-4ge4 ES5 引入严格模式,它是一种在写 JS 代码时强制使用严格模式方法...代码提升 • 对象不存在重复 key • 声明变量不使用 var 关键字 • 函数参数不存在重复参数 开启严格模式 • 文件级别: 在文件开头处添加 "use strict"。...• 函数级别: 在函数最前面添加 "use strict"。 • 模块级别: ES6/ES2015 引入模块默认就是严格模式。...let、var 或 const 去声明变量,JavaScript 也不会有问题。...这样会强制使 JS 创建一个全局属性,同时在应用这样会导致一些问题(变量冲突或更改了全局属性)。 严格模式会通过抛出错误来解决此问题。 1.

48730

JavaScript单例模式

单例模式 是一种常见设计模式,在应用这个模式时,必须保证单例对象类只有一个实例存在;这样全局拥有一个对象,有利于我们进行系统调整。...把描述同一件事物属性和方法放在同一段堆内存,起到分组作用,防止冲突;这样不同事物间即使属性名一样也不会发生冲突,这种分组编写代码模式叫做单例模式;在单例模式把对象名叫做命名空间。...缺点 我们可以通过操作直接对象属性改变了原有的值。 实例 有这样一个常见需求,点击某个按钮时候需要在页面弹出一个遮罩层。比如web.qq.com点击登录时候....首先这个函数是存在一定副作用, 函数体内改变了外界变量mask引用, 在多人协作项目中, createMask是个不安全函数. 另一方面, mask这个全局变量并不是非需不可....mask包起来, 至少对于createMask函数来讲, 它是封闭

52830

JavaScript函数认识,Js常见函数

JavaScript函数: 也称为方法,用来存储一块代码,需要时候调用。 函数是由事件驱动或者当它被调用时执行可重复使用代码块。...JavaScript函数定义: //定义函数jiSun function jiSuan(){ alert("这是函数jiSuan"); } //调用函数...function是定义函数,并不会执行,调用函数时才会寻找该函数定义内容。 JavaScript函数定义和调用先后顺序可以先写调用在写定义。...(3); JavaScript常用函数: document.write(""); 输出语句 Math.random();获取0-1之间随机数 document.write(Math.random...="hello world"; var s="l"; //返回字符在字符串第一次出现位置 document.write(str.indexOf(s)); //返回指定位置字符

3K80

JavaScript匿名函数困惑

函数字面量(function literal):处理事件无名函数(nameless function)。函数字面量有时也称为匿名函数(anonymous function)。...可以在onload事件完成所有事件初始化。 函数字面量最好只被调用一次,而且不是被开发者写程序代码调用。创建一个函数字面量并直接指派给一个元素事件属性,而不是创建有名称函数并指派到它引用。...如果在代码不需要函数引用时,为了编写程序效率,同时不想中规中矩为函数命名,函数字面量(匿名函数)才显得有必要。 匿名函数调用: 调用一个函数,必须有方法定位它,找到它。...第一种情况:     (function () { alert("anonymousfunction") })();     window.onload...匿名函数生命周期和window.onload有内在关系吗?

1.2K70

JavaScript惰性载入函数

定义 惰性载入函数表示函数执行分支会发生一次,有两种实现惰性载入函数方式,第一种是在函数被调用时再处理,在第一次调用,该函数会覆盖为另外一个按合适方式执行函数,这样任何对函数调用都不用再经过执行分支了...第二种实现惰性载入方式是在声明函数时就制定适当函数,这样,第一次调用函数时就不会损失性能了,而在代码首次加载时会损失一点儿性能。...,通过var来定义函数,在每个if分支return一个函数。...优势 惰性载入函数有两个主要优点,第一是显而易见效率问题,虽然在第一次执行时候函数会意味赋值而执行慢一些,但是后续调用会因为避免重复检测更快;第二个是要执行适当代码只有当实际调用函数是才执行...,很多JavaScript库在在加载时候就根据浏览器不同而执行很多分支,把所有东西实现设置好,而惰性载入函数将计算延迟,不影响初始脚本执行时间。

85920

JavaScript函数式编程

函数式编程 函数式编程是一种编程范式,是一种构建计算机程序结构和元素风格,它把计算看作是对数学函数评估,避免了状态变化和数据可变,与函数式编程相对是命令式编程。...事实上我们加一函数只能加一,也不好复用,它还可以继续拆: // 先写一个通用加法,他接收第一个加数,返回一个方法 // 返回这个方法接收第二个加数,第一个加数是上层方法a // 这样当我们需要计算...纯函数函数是指一个函数,如果它调用参数相同,则永远返回相同结果。它不依赖于程序执行期间函数外部任何状态或数据变化,只依赖于其输入参数。...不纯函数可能会带来副作用。 函数副作用 函数副作用是指调用函数时除了返回函数值之外,还对主调用函数产生附加影响,比如修改全局变量或者外部变量,或者修改参数。...我们目标是尽可能减少副作用,将函数写为纯函数,下面这个不纯函数使用了new Date,每次运行结果不一样,是不纯: ?

1K41
领券