javascript 函数及作用域总结介绍

Javascript 函数及作用域总结介绍

Javascript 函数及作用域是 Javascript 学习中最核心和重要的部分之一,下面我们将深入学习并总结它们的基本知识。

函数(Function)

定义

在 Javascript 中,函数是一种数据类型,可以被执行。函数有两种方式定义,一种是函数声明方式,另一种是函数表达式方式。

函数声明方式

function funcName(param1, param2, ...) {
  // 函数体
  return result;
}

这里 funcName 指函数名, param1, param2,... 指函数参数, return 指返回值。

函数表达式方式

var funcName = function(param1, param2, ...) {
  // 函数体
  return result;
}

这里 var 定义了一个函数变量,funcName 是变量名,可不加;param1, param2, ... 是函数参数,不需要在函数定义时指定类型,可以不加;return 指返回值。

调用方式

函数声明方式和函数表达式方式的调用方式是一样的。

var result = funcName(param1, param2, ...);

作用域(Scope)

作用域描述了变量在何处可见与可访问到。Javascript 中的作用域是词法作用域(lexical scope,也称静态作用域)。

题目1: 方式一

var name = "tom's window";

function person() {
    console.log("name: " + name);
}
person(); // name: tom's window

在上述代码中,name 是在 person() 函数的外部定义的一个全局变量,在 person() 中,name 可以被访问到并输出。

题目2: 方式二

function person() {
    var name = "tom's window";
    console.log("name: " + name);
}
person(); // name: tom's window

在上述代码中,name 是在 person() 函数内部定义的,其作用域只能在该函数内进行访问。

尾调用优化

Javascript 引擎的尾调用优化(tail call optimization)可以使得某些函数的递归方式更加节省内存,避免栈溢出等问题。

function factorial (n, p = 1) {
    if (n <= 1) {
        return 1 * p;
    } else {
        let x = n * p;
        return factorial(n - 1, x);
    }
}
console.log(factorial(5)); // 120

factorial() 函数尾部调用自己时进行了优化,使得其递归调用变得高效、节省内存。

以上为 Javascript 函数及作用域的一些重点知识介绍。通过阅读、学习并掌握这些知识点,可以深入理解 Javascript 语言以及编写出更为高效的代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript 函数及作用域总结介绍 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Ajax 表单验证 实现代码

    实现 Ajax 表单验证需要用到以下步骤: 1.编写 HTML 表单 首先,我们需要编写一个含有需要验证的表单的 HTML 文件。例如,以下是一个简单的 HTML 表单: <form id="myForm" method="post" action=""> <label for=&…

    JavaScript 2023年6月10日
    00
  • JS实现将二维数组转为json格式字符串操作示例

    JS将二维数组转为JSON格式字符串的操作可以使用JSON对象的“stringify”方法实现。以下是详细的攻略步骤: 步骤1 首先定义一个二维数组,例如: const arr = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; 步骤2 使用JSON对象的“stringify”方法将二维数组转换为JSON格式字符串,例如: cons…

    JavaScript 2023年5月27日
    00
  • typeScript入门基础介绍

    TypeScript入门基础介绍 TypeScript 是一种由 Microsoft 开发的编程语言,它是 JavaScript 的一个超集。它扩展了 JavaScript 的语法,添加了强类型定义和面向对象编程的特性,并提供了更好的开发环境支持。 环境搭建 在使用 TypeScript 之前,我们需要先搭建环境。以下为搭建环境的步骤: 安装 Node.js…

    JavaScript 2023年6月10日
    00
  • Javascript实现关闭广告效果

    首先我们需要明确一下什么是广告,广告通常是指网页中不需要的内容,往往我们希望将其从页面中移除,这就是所谓的关闭广告。 实现关闭广告效果的方法很多,目前比较常用的是Javascript脚本。Javascript不仅可以用来强制隐藏广告,还可以用来防止广告显示在首屏内容之前。 下面介绍几种常用的Javascript实现关闭广告的方法及其示例说明: 一、使用广告屏…

    JavaScript 2023年6月11日
    00
  • JS开发 富文本编辑器TinyMCE详解

    JS开发 富文本编辑器TinyMCE详解 什么是TinyMCE TinyMCE是一款完全基于JavaScript的开源富文本编辑器,它是一个丰富、灵活的工具,可以帮助我们创建各种各样的文档内容。它支持各种格式的文本、图片、表格等元素,并且能够保留你所选样式的完整性和可编辑性。 基本用法 引入TinyMCE 我们首先要引入TinyMCE的JavaScript文…

    JavaScript 2023年6月11日
    00
  • 浅谈JS中json数据的处理

    下面是“浅谈JS中json数据的处理”的完整攻略: 一、什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,以易于读写且易于机器解析的形式传输数据。JSON采用键值对的形式组织数据,并使用逗号分隔不同的键值对。 二、JSON数据的表示方式 在JavaScript中使用JSON表示数据时,可以使用字面量表…

    JavaScript 2023年6月11日
    00
  • JavaScript中的console.profile()函数详细介绍

    JavaScript中的console.profile()函数详细介绍 什么是console.profile()函数? console.profile() 函数是JavaScript中内置的一个控制台函数,它可以用来分析网站性能,定位瓶颈。当执行此函数时,浏览器会在控制台中打开一个新的性能分析面板,记录执行时间、调用堆栈、内存使用情况等详细信息,从而帮助我们…

    JavaScript 2023年5月28日
    00
  • 详解JavaScript逻辑And运算符

    详解JavaScript逻辑And运算符 什么是And运算符? And运算符,也叫逻辑与运算符,是JavaScript中的一种逻辑运算符。当两个操作数都为真(truthy)时,And运算符返回真;否则返回假(false)。 And运算符的使用 语法格式为: expression1 && expression2 其中,expression1和e…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部