从零开始学习JavaScript:轻松掌握编程语言的核心技能⑤

这篇具有很好参考价值的文章主要介绍了从零开始学习JavaScript:轻松掌握编程语言的核心技能⑤。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🏘️🏘️个人简介:以山河作礼。
🎖️🎖️:Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主
🎁🎁:Web全栈开发专栏:《Web全栈开发》免费专栏,欢迎阅读!



从零开始学习JavaScript:轻松掌握编程语言的核心技能⑤

1. JavaScript 函数定义

📑📑在 JavaScript 中,函数可以通过 function 关键字来定义
📌函数定义的一般语法如下:

function functionName(parameters) {
  // 函数体
  return returnValue; // 可选
}

其中,functionName 是函数的名称,parameters
是函数的参数列表,可以是多个参数,用逗号分隔。函数体是函数执行的代码块,可以包含任意数量的语句。returnValue
是函数的返回值,可以省略。

📌以下是一个简单的例子,定义了一个接收两个参数并返回它们之和的函数:

function add(num1, num2) {
  return num1 + num2;
}

📌可以通过以下方式调用该函数:

var sum = add(2, 3); // sum 的值为 5

📌函数也可以使用匿名函数的形式定义,例如:

var add = function(num1, num2) {
  return num1 + num2;
}

📌这种方式定义的函数可以通过变量名来调用,例如:

var sum = add(2, 3); // sum 的值为 5

2. JavaScript 函数参数

2.1 函数显式参数(Parameters)与隐式参数(Arguments)

📑📑在 JavaScript 中,函数的参数有两种类型:显式参数和隐式参数

2.1.1 显式参数(Parameters)

📌显式参数是在函数定义时声明的参数,它们的值在函数调用时通过传递实参来确定。
例如:

function add(x, y) {
  return x + y;
}

add(2, 3); // 5

在上面的例子中,x 和 y 就是函数 add 的显式参数。在函数调用时,实参 2 和 3 会分别赋值给 x 和 y。

2.1.2 隐式参数(Arguments)

📌隐式参数是在函数内部自动创建的一个对象,它包含了所有传递给函数的实参。它是一个类数组对象,可以通过下标访问其中的元素。
例如:

function sum() {
  let total = 0;
  for (let i = 0; i < arguments.length; i++) {
    total += arguments[i];
  }
  return total;
}

sum(1, 2, 3, 4); // 10

arguments 就是函数 sum 的隐式参数。在函数调用时,实参 1、2、3 和 4 会被存储在 arguments
对象中,然后通过循环遍历 arguments 对象来计算它们的总和。

📌隐式参数 arguments 是一个类数组对象,它没有数组的所有方法,如果需要使用数组方法,需要将其转换成真正的数组。
例如:

function toArray() {
  return Array.prototype.slice.call(arguments);
}

toArray(1, 2, 3); // [1, 2, 3]

在上面的例子中,使Array.prototype.slice.call(arguments) 将 arguments
对象转换成了一个真正的数组,然后返回该数组。

2.2 arguments 对象

📌在 JavaScript 中,每个函数都有一个内部对象 arguments,它表示函数的实参集合。arguments 对象是一个类数组对象,可以通过下标访问其中的元素。

例如,下面的函数可以计算任意数量的实参的总和:

function sum() {
  let total = 0;
  for (let i = 0; i < arguments.length; i++) {
    total += arguments[i];
  }
  return total;
}

sum(1, 2, 3, 4); // 10

arguments 对象包含了所有传递给函数 sum 的实参,通过循环遍历 arguments 对象,可以计算出它们的总和。

📌arguments 对象不是一个真正的数组,它没有数组的所有方法,如果需要使用数组方法,需要将其转换成真正的数组。
例如:

function toArray() {
  return Array.prototype.slice.call(arguments);
}

toArray(1, 2, 3); // [1, 2, 3]

使用 Array.prototype.slice.call(arguments) 将 arguments
对象转换成了一个真正的数组,然后返回该数组。

3. JavaScript 函数调用

3.1 this 关键字

📑📑在 JavaScript 中,关键字 this 通常用于引用当前函数所属的对象。this 的值在函数调用时确定,并且取决于调用函数的方式
下面是一些常见的 this 使用方式:

📌全局环境中的 this:在全局环境中,this 指向全局对象(在浏览器中是 window 对象)。
例如:

console.log(this); // 输出 window 对象

📌对象方法中的 this:在对象方法中,this 指向调用该方法的对象。
例如:

let person = {
  name: 'Tom',
  sayHi: function() {
    console.log('Hi, my name is ' + this.name);
  }
};

person.sayHi(); // 输出 Hi, my name is Tom

📌构造函数中的 this:在构造函数中,this 指向新创建的对象。
例如:

function Person(name) {
  this.name = name;
  this.sayHi = function() {
    console.log('Hi, my name is ' + this.name);
  }
}

let person1 = new Person('Tom');
let person2 = new Person('Jerry');

person1.sayHi(); // 输出 Hi, my name is Tom
person2.sayHi(); // 输出 Hi, my name is Jerry

📌apply 和 call 方法中的 this:在 apply 和 call 方法中,this 可以指向任意对象。
例如:

function sayHi() {
  console.log('Hi, my name is ' + this.name);
}

let person1 = {name: 'Tom'};
let person2 = {name: 'Jerry'};

sayHi.call(person1); // 输出 Hi, my name is Tom
sayHi.call(person2); // 输出 Hi, my name is Jerry
  • 当函数作为普通函数调用时,this 指向全局对象;
  • 当函数作为对象方法调用时,this 指向调用该方法的对象;
  • 当函数作为构造函数调用时,this 指向新创建的对象;
  • 当函数使用 apply 或 call 方法调用时,this 可以指向任意对象。

3.2 全局对象

  • 在 JavaScript 中,全局对象是一个特殊的对象,它是全局作用域中所有变量和函数的宿主对象。在浏览器中,全局对象是 window对象,它包含了所有浏览器窗口的全局变量和函数。在 Node.js 中,全局对象是 global 对象,它包含了所有 Node.js程序的全局变量和函数。
  • 全局对象可以通过 this 关键字来引用。在全局作用域中,this 指向全局对象本身。 例如,在浏览器中,可以通过window.alert() 来弹出一个对话框,也可以通过 this.alert() 来实现同样的效果。
  • 全局对象还包含了一些内置的属性和方法,例如在浏览器中,window 对象包含了document、consolesetTimeout、setInterval 等属性和方法,可以通过window.document、window.console、window.setTimeout、window.setInterval等来访问它们。

全局对象的属性和方法可以被程序中的任何代码访问,因此应该避免在全局作用域中定义过多的变量和函数,以免造成命名冲突和不必要的安全风险。

4. 使用构造函数调用函数

📑📑在 JavaScript 中,函数可以通过构造函数的方式调用,这种方式被称为构造函数调用。当使用 new 操作符调用一个函数时,该函数会被作为构造函数来使用,它将返回一个新创建的对象

下面是一个使用构造函数调用函数的示例:

function Person(name, age) {
  this.name = name;
  this.age = age;
}

let person1 = new Person('Tom', 18);
let person2 = new Person('Jerry', 20);

console.log(person1); // {name: "Tom", age: 18}
console.log(person2); // {name: "Jerry", age: 20}

Person 函数被作为构造函数来使用,通过 new 操作符创建了两个新的对象 person1 和 person2。在构造函数中,使用
this 关键字来指向新创建的对象,并将属性赋值给它们。最后,构造函数返回新创建的对象。

构造函数的名称通常以大写字母开头,这是一种约定俗成的写法,用来区分普通函数和构造函数。

另外,使用构造函数调用函数时,如果构造函数中没有显式地返回一个对象,则构造函数会默认返回新创建的对象。如果构造函数中显式地返回一个对象,则该对象将会被返回,而新创建的对象将被忽略。

5. JavaScript 闭包

📑📑在 JavaScript 中,闭包是指一个函数可以访问其词法作用域之外的变量。换句话说,闭包可以访问在函数定义时处于父级作用域中的变量,即使在函数调用时,这些变量已经不在父级作用域中了
下面是一个使用闭包的例子:

function outer() {
  var count = 0;

  function inner() {
    count++;
    console.log(count);
  }

  return inner;
}

var counter = outer();
counter(); // 输出 1
counter(); // 输出 2

outer 函数返回了一个内部函数 inner,该函数可以访问 outer 函数中的 count 变量。当 outer函数被调用时,它创建了一个新的词法作用域,并在其中定义了 count 变量和 inner 函数。然后,outer 函数返回 inner 函数,使其可以在外部作用域中被调用。

当 counter 函数被调用时,它会访问 outer 函数中的 count 变量,并将其递增。由于 inner 函数是一个闭包,它可以访问outer 函数中的 count 变量,即使 outer 函数已经执行完毕并且 count变量已经不在 outer 函数的作用域中了。

闭包在 JavaScript 中有广泛的应用,例如在模块化编程中、实现私有变量和方法、以及在异步编程中保存状态等。但是,由于闭包可以访问外部作用域中的变量,如果不妥善地使用闭包,可能会导致内存泄漏和性能问题。因此,在使用闭包时,需要谨慎考虑其影响,并避免滥用。文章来源地址https://www.toymoban.com/news/detail-473060.html

到了这里,关于从零开始学习JavaScript:轻松掌握编程语言的核心技能⑤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从零开始学习R语言编程:完全指南

    R语言是一种流行的数据分析语言,广泛应用于学术界、商业界和社会科学研究等领域。与其它数据分析软件相比,R语言的优点包括免费开源、高效可靠、具有强大的数据分析和可视化能力等。R语言的编程基础包括了各种控制结构和函数,可以方便地实现算法和数据操作。本

    2024年02月10日
    浏览(60)
  • [从零开始学习FPGA编程-32]:进阶篇 - 基本时序电路-D触发器(Verilog语言)

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:  目录 第1章 什么是时序电路 1.1 时序电路 1.2 什么是触发器

    2023年04月08日
    浏览(51)
  • 如何高效的学习接口自动化测试?从零开始学习接口自动化测试:选择合适的学习资源和编程语言

    目录 引言: 一、学习前的准备 二、选择合适的学习资源 三、实践中学习 四、总结 在日常的软件开发过程中,接口自动化测试是一个非常重要的环节。接口自动化测试可以帮助我们快速准确地检测出软件中的缺陷,提高软件的质量和稳定性。但是,要学习接口自动化测试并

    2024年02月06日
    浏览(68)
  • 编写接口文档示例:从零开始,轻松掌握关键技巧

    接口文档的编写是软件开发中至关重要的一环,本文将详细介绍如何编写接口文档示例,为您揭示从基础知识到高级技巧的全过程。通过实用的指导和比喻,让您轻松掌握编写接口文档示例的艺术。 在现代软件开发中,编写接口文档示例是确保项目顺利推进和团队合作的重要

    2024年02月12日
    浏览(44)
  • AI代码翻译神器,用AI翻译代码,轻松学习不同编程语言,已开源!

    体验地址,github地址和部署地址在文章底部 近年来,随着技术的快速进步,人工智能技术展现出了在各个领域发挥作用的巨大潜力。AI代码翻译器作为一项创新技术,为开发者带来了全新的可能性。这项技术运用人工智能,能够将一种编程语言的代码翻译成另一种,便利了跨

    2024年01月21日
    浏览(75)
  • 学习javascript,前端知识精讲,助力你轻松掌握

    ✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 所属专栏: 前端泛海 景天的主页: 景天科技苑 JavaScript在1995年诞生了; 由Netscape公司,布兰登·艾奇(Brendan Eich)发明的ECMAScript客户端脚本语言; 主要应用在浏览器,在当时却不温不火. 直到后来Netscape与S

    2024年03月15日
    浏览(64)
  • 从零开始-学习网络必须掌握的基础知识

    从零开始!学习网络必须掌握的基础知识 完整的100个网络知识,可留言,会发送!点击关注,可获得网工大礼包哈

    2024年02月15日
    浏览(55)
  • 从零学习开发一个RISC-V操作系统(四)丨RISC-V汇编语言编程

       本系列是博主参考B站课程学习开发一个RISC-V的操作系统的学习笔记,计划从RISC-V的底层汇编指令学起,结合C语言,在Ubuntu 20.04上开发一个简易的操作系统。一个目的是通过实践操作学习和了解什么是操作系统,第二个目的是为之后学习RISC-V的集成电路设计打下一定基础

    2024年01月25日
    浏览(61)
  • [前端系列第3弹]JS入门教程:从零开始学习JavaScript

    本文将带领大家,从零开始学习JavaScript,fighting~ 目录 一、JavaScript简介 二、变量和数据类型 三、注释和分号 四、算术运算符 五、表达式和语句 六、代码块和作用域 七、函数(最重要)          JavaScript(简称JS)是一种运行在浏览器中的脚本语言,它可以让网页变得

    2024年02月13日
    浏览(64)
  • Python入门指南:从零开始学习Python编程

    Python是一种简单而又强大的编程语言,它在全球范围内广受欢迎,适用于各种应用场景,包括Web开发、数据分析、人工智能和科学计算等。本篇博客将为初学者提供一份Python入门指南,帮助你从零开始掌握Python编程基础。 首先,我们需要安装Python解释器。前往Python官方网站(

    2024年02月14日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包