什么是JavaScript函数基础知识(全),让你彻底搞懂函数
如果您已经开始学习JavaScript了,那是时候了解下基本函数了,本章节为大家分享JavaScript基本函数!
一般来说,函数是经过精心挑选和设计以执行特定任务的子程序。
它是一个对象。要执行一个函数,您将调用它,也称为调用函数。您还可以将值传递给函数以在函数中使用。事实上,函数总是会返回一个值。因此,如果您不指定返回值, JavaScript 函数将返回 undefined。
您可以通过多种方式在代码中定义 JavaScript函数。首先,您将使用函数声明。您可以使用关键字“function”创建函数声明,然后添加函数的名称。当您使用函数声明时,您将提升函数定义,这将允许您在定义函数之前使用它。
接下来,您有一个任务 JavaScript 函数表达式。这定义了一个匿名或命名的名字 JavaScript 函数。匿名函数是尚未命名的函数。因为函数表达式不能被提升,所以在定义它们之前不能使用它们。
创建函数表达式的较短语法是箭头函数。这种类型的 JavaScript 函数不会创建自己的值。它仅用于编写不同的功能。
您可能听说过“arguments”和“parameters”这两个术语可以互换使用,这可能会导致您认为它们是同一个东西。虽然这两个术语在涉及 JavaScript 函数时非常相似,但您应该了解一些非常重要的区别。
参数用于定义JavaScript 函数。这意味着参数是在定义 JavaScript 函数是最初创建的名称。在进行函数定义时,您可能会传递多达 255 个 JavaScript 参数。使用逗号将参数与下一个参数隔开。
当您调用JavaScript 函数时,您正在执行该函数,也称为调用它。要调用函数,首先添加JavaScript 函数的名称,后跟两个括号。为了帮助您更好地理解 JavaScript的这个组件。
如果您当前使用的是Google Chrome,请打开开发者控制台。这将允许您练习 JavaScript 函数。要打开此开发人员控制台,请按 Ctrl + Shift + J(对于 Windows)或Cmd + Opt + J(对于 Mac)。
首先,让我们定义一个名为 logIt的 JavaScript 函数。这个 JavaScript 函数将有一个参数:“city”。执行完此函数后,我们将名称记录到控制台中。它看起来像这样:
如果你想调用这个函数,你可以调用它并将它传递给一个参数。在此示例中,JavaScript 函数名为 Dallas。它看起来像这样:
如果您的函数没有任何参数,则可以使用一组空括号来调用它。它看起来像这样;
在 JavaScript 中,除非您另行指定,否则每个函数都将返回undefined。让我们通过调用一个空的JavaScript 函数。
在上面的示例中,JavaScript 函数将返回 undefined。要自定义它将返回什么,我们可以使用关键字“return”,然后是我们希望它返回的值。
在上面的示例中,我们已经告诉 JavaScript 函数我们希望它返回false。调用此函数允许这种情况发生。这很重要,因为函数返回的值将返回给函数的调用者。
表达式将创建一个 JavaScript 函数,该函数将给出的一个值是什么 num 参数的两倍的值。然后,您可以调用此 JavaScript 函数并未将返回的值保存到变量中:
注销此测试值会返回结果为 9。关于 return 语句的另一个重要规则是它会立即停止函数。
函数本质上是一个函数对象。这是一个事实,即如果某些东西不是原始的,那么它就是一个对象。JavaScript对象用途广泛;它甚至可以让我们将 JavaScript 中的函数作为参数移动到另一个 JavaScript 函数。
当一个 JavaScript 函数接受另一个参数函数时,这是一个高阶函数。无论您目前是否参加了会议 JavaScript 训练营,您很可能已经在 JavaScript 使用过一个高阶函数,但并没有意识到这一点。这方面的两个例子是Array.prototype.filter和Array.prototype.mapand。这些只是众多高阶函数中的一小部分。
总结:总而言之,JavaScript 函数是一个对象。它是子程序的一部分,其目标是完成一种特定类型的任务。一个 JavaScript 函数被提升,而一个表达式没有。要执行 JavaScript 函数,您将调用它,这称为调用函数。您也可以将值传递给函数,以便在函数中使用它,也称为参数,而其本身的值是参数。一个函数总是会返回一个值,但是 JavaScript 中没有返回值的函数会以未定义的形式返回。
JavaScript 基本类型和引用类型的区别
在 JavaScript 中,变量或参数在内存中的分配可以是值或一个地址的引用。
两者之间的主要区别在于,在分配基本数据类型时会发生值传递,而在分配对象类型时会发生引用传递。
让我们在这篇文章中更详细地讨论价。
JavaScript 提供了 2 类数据类型:基本数据类型和引用类型。
基本数据是数字(Number)、布尔值(Boolean)、字符串(String)、符号(Symbol)和特殊值null和undefined.
第二类是引用类型。比如普通对象(Object)、数组(Array)、函数(Function)等等——都是引用类型。
在JavaScript 中的所有的基本类型都是按值传递的。
按值传递意味着每次将值分配给变量时,都会创建该值的副本。
让我向您展示按值传递是如何表现出来的。
假设您有 2 个变量a和b:
第一条语句let a = 1定义了一个值为1的变量a。
第二条语句let b = a定义了另一个变量b并用变量a的值初始化它——这就是按值传递的。直接将a变量的值1副本分配给b。
之后,b = b + 2增加2并变为3,b变量发生变化,并且这种变化不会影响a。
然而,引用类型传递以不同的方式表现出来。
创建对象时,您将获得对该对象的引用。如果 2 个变量具有相同的引用,则更改对象会反映在两个变量中。
让我们检查以下代码示例:
第一条语句let x = [1]创建一个变量x,并给它初始化一个数组对象。
然后第二条语句let y = x定义一个变量y,并使用变量x中的引用对y进行初始化。
当 y.push(2) 改变数组2。因为x和y变量引用同一个数组,所以这种变化反映在两个变量中。
注意:为简单起见,我说变量包含对象的引用。但严格来说,JavaScript 中的变量保存的只是对象的引用。
使用严格比较运算符时===进行比较基本类型时,如果两个变量具有相同的值,则它们是相等的。以下所有比较都是相等的:
变量one和oneCopy具有相同的值1。只要两个操作数都是1,使用运算符===的计算结果都是true,无论值来自何处:文字1、变量的值、表达式 2 – 1。
但是在比较引用类型时的结果却不同。只有当它们引用完全相同的对象时,2 个引用才相等。
ar1和ar2持有对不同数组实例的引用:
虽然ar1和ar2引用相同结构的数组,但ar1 === ar2结果却为false,是因为ar1和ar2引用不同的数组对象。
只有当ar1和ar2引用相同的对象时使用比较操作符===结果才返回true,如ar1 === ar11,ar1 === ar1。
在 JavaScript 中,基本类型是值传递:这意味着每次分配一个值时,都会创建该值的副本。
另一方面,如果您修改引用类型对象,则引用该对象的所有变量都将同步更改。
比较运算符区分基本类型和引用类型。当 2 个变量只有在它们引用完全相同的对象时才相等,但是如果它们只是具有 2 个相同的值的基本类型变量,则这2 个变量是相等的。
Javascript简介和基础数据类型
- JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言 (Script 是脚本的意思)。
- 脚本语言:不需要编译,运行过程中由 js 解释器( js 引擎)逐行来进行解释并执行。
- 现在也可以基于 Node.js 技术进行服务器端编程。
ECMAScript 是由ECMA 国际( 原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为 JavaScript或 JScript,但实际上后两者是 ECMAScript 语言的实现和扩展。
ECMAScript:规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。
文档对象模型(DocumentObject Model,简称DOM),是W3C组织推荐的处理可扩展标记语言的标准编程接口。通过 DOM 提供的接口可以对页面上的各种元素进行操作(大小、位置、颜色等)
浏览器对象模型(Browser Object Model,简称BOM) 是指浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转、获取分辨率等。
- const用来定义常量。
- let和var用来定义变量,推荐使用let,作用域更加严格。
JS 把数据类型分为两类:
- 简单数据类型 (Number,String,Boolean,Undefined,Null)
- 复杂数据类型 (object)
- typeof 查看数据类型
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。