js笔记(函数参数、面向对象、装饰器、高级函数、捕获异常)

JavaScript 笔记

函数参数

默认参数

在 JavaScript 中,我们可以为函数的参数设置默认值。如果调用函数时没有传递参数,那么参数将使用默认值。

function greet(name = 'World') {console.log(`Hello, ${name}!`);
}greet(); // 输出:Hello, World!
greet('Alice'); // 输出:Hello, Alice!

Rest 参数

Rest 参数允许我们将不确定数量的参数表示为一个数组。

function sum(...numbers) {let total = 0;for (let number of numbers) {total += number;}return total;
}console.log(sum(1, 2, 3)); // 输出:6
console.log(sum(4, 5));    // 输出:9
console.log(sum(6));       // 输出:6

面向对象

JavaScript 是一种面向对象的语言,它支持通过构造函数和原型来创建对象。

构造函数

构造函数允许我们创建具有相同属性和方法的对象实例。

function Person(name, age) {this.name = name;this.age = age;
}Person.prototype.greet = function() {console.log(`Hello, my name is ${this.name}. I'm ${this.age} years old.`);
};const person1 = new Person('Alice', 25);
const person2 = new Person('Bob', 30);person1.greet(); // 输出:Hello, my name is Alice. I'm 25 years old.
person2.greet(); // 输出:Hello, my name is Bob. I'm 30 years old.

ES6 引入了 class 关键字,使得创建类更加简洁和直观。

class Person {constructor(name, age) {this.name = name;this.age = age;}greet() {console.log(`Hello, my name is ${this.name}. I'm ${this.age} years old.`);}
}const person1 = new Person('Alice', 25);
const person2 = new Person('Bob', 30);person1.greet(); // 输出:Hello, my name is Alice. I'm 25 years old.
person2.greet(); // 输出:Hello, my name is Bob. I'm 30 years old.

装饰器

装饰器是一种语法,可以修改类、方法、属性等的行为。它是 JavaScript 中的一项实验性功能,并需要使用 Babel 等工具进行转译。

function log(target, name, descriptor) {const originalMethod = descriptor.value;descriptor.value = function(...args) {console.log(`Calling ${name} with arguments: ${args.join(', ')}`);return originalMethod.apply(this, args);};return descriptor;
}class Calculator {@logadd(a, b) {return a + b;}
}const calculator = new Calculator();
console.log(calculator.add(2, 3)); // 输出:Calling add with arguments: 2, 3//      5

高级函数

JavaScript 中的高级函数可以接受其他函数作为参数或返回函数。

高阶函数

高阶函数是指接受一个或多个函数作为参数,并/或者返回一个函数的函数。

function applyOperation(a, b, operation) {return operation(a, b);
}function add(a, b) {return a + b;
}function subtract(a, b) {return a - b;
}console.log(applyOperation(2, 3, add));      // 输出:5
console.log(applyOperation(2, 3, subtract)); // 输出:-1

匿名函数和箭头函数

匿名函数是没有具名标识符的函数,我们可以将其作为参数传递给其他函数或直接调用。

箭头函数是一种匿名函数的简写形式,并且它的行为与普通函数略有不同。箭头函数没有自己的 this,而是继承外部作用域的 this 值。

const multiply = function(a, b) {return a * b;
};const divide = (a, b) => a / b;console.log(multiply(2, 3)); // 输出:6
console.log(divide(6, 2));   // 输出:3

捕获异常

在 JavaScript 中,我们可以使用 try...catch 语句来捕获和处理异常。

try {// 可能会抛出异常的代码throw new Error('Something went wrong!');
} catch (error) {// 捕获并处理异常console.error(`Error: ${error.message}`);
}

通过使用 try...catch 块,我们可以在程序出现异常时执行特定的操作并提供更友好的错误处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/123800.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CPP】类和对象

1- Classes and Objects Structures A struct in C is a type consisting of a sequence of data membersSome functions/Statements are needed to operate the data members of an object of a struct type 不不小心操作错误,不小心越界 Classes You should b…

C++设计模式_18_State 状态模式

State和Memento被归为“状态变化”模式。 文章目录 1. “状态变化”模式1.1 典型模式 2. 动机 (Motivation)3. 代码演示State 状态模式3.1 常规方式3.2 State 状态模式 4. 模式定义5. 结构( Structure )6. 要点总结7. 其他参考 1. “状态变化”模式 在组件构建过程中&#xf…

Ionic 7 版本发布 - 免费开源、超受欢迎的移动应用开发 UI 工具包,主题优雅且完美支持 Vue.js

Ionic 是一款优秀的移动 UI 框架,迭代也很快,现在也支持了 Vue,是时候向大家推荐用来开发 APP 了。 Ionic 全称是 Ionic Framework,是一个功能强大的开源 UI 工具库,用来帮助前端开发者构建跨平台的移动应用。 Ionic …

Go语言开发网站

引言 随着互联网的迅速发展,网站已经成为人们获取各种信息和服务的主要途径。而开发一个高性能、可扩展的网站是一项挑战。Go语言作为一门现代化的编程语言,具有强大的并发能力和高效的性能,逐渐成为网站开发的首选语言之一。本文将介绍如何…

rhcsa目录练习

要求 在根下创建一个叫做test的目录,在test的目录下创建三个普通文件file1 file2 file3,给file1创建一个软链接aa,给file2创建两个硬链接,在test目录下创建一个ceshi的目录,在ceshi的目录下创建a1-a8,b1-b8,ac1-ad8的…

【前端框架】本文带你了解nvue

前言 各位公主给👸🏻,王子🤴🏻好,我是你们的Aic山鱼,专注于前端领域的垂直更新。我热衷于分享我的经验和知识,希望能够帮助更多的人在前端领域取得进步。作为一名前端开发人员&#…

Linux 系统调用IO口,利用光标偏移实现文件复制

用系统调用IO函数实现从一个文件读取最后2KB数据并复制到另一个文件中,源文件以只读方式打开,目标文件以只写的方式打开,若目标文件不存在,可以创建并设置初始值为0664,写出相应代码,要对出错情况有一定的处…

【C++】搜索二叉树

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、搜索二叉树概念二、搜索二叉树的操作1.插入2. 查找3. 中序遍历4. 删除 三、默认成员函数1.析构函数2.拷贝构造3. 赋值运算符重载 四、完整代码 一、搜索二叉树概…

SSM宾馆客房管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 宾馆客房管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代 码和数据库,系统…

任正非说:扩张必须踩在坚实的基础上,擅自扩张只能是自杀。

嗨,你好!这是华研荟【任正非说】系列的第23篇文章,让我们继续聆听任正非先生的真知灼见,学习华为的管理思想和管理理念。 一、要想赢,要么在剑法上高于人,要么在盾牌上坚于人。若果剑不如人,就要…

大厂面试题-JVM为什么使用元空间替换了永久代?

目录 面试解析 问题答案 面试解析 我们都知道Java8以及以后的版本中,JVM运行时数据区的结构都在慢慢调整和优化。但实际上这些变化,对于业务开发的小伙伴来说,没有任何影响。 因此我可以说,99%的人都回答不出这个问题。 但是…

一文读懂:到底什么是Chiplets?

50多年来,Intel和AMD一直是两家主流的处理器公司。 虽然两者都使用x86 ISA来设计新品,但是在过去十多年左右的时间里,两家cpu公司却走上了完全不同的道路。 大约在2000年代中期,随着推土机(Bulldozer)芯片推出,AMD在…

centos安装vim编辑器

第一步检查centos的vim编辑器包是否完整 rpm -qa|grep vim //查看Vim编辑器需要安装的四个包是否完整 第二步:一般安装vim编辑器需要一下四个安装包,缺失了之后可对应下载 vim-minimal-7.4.160-2.el7.x86_64vim-common-7.4.160-4.el7.x86_64 v…

京东商品链接获取京东商品评论数据(用 Python实现京东商品评论信息抓取),京东商品评论API接口,京东API接口

在网页抓取方面,可以使用 Python、Java 等编程语言编写程序,通过模拟 HTTP 请求,获取京东多网站上的商品详情页面评论内容。在数据提取方面,可以使用正则表达式、XPath 等方式从 HTML 代码中提取出有用的信息。值得注意的是&#…

Flask基本教程以及Jinjia2模板引擎简介

flask基本使用 直接看代码吧,非常容易上手: # 创建flask应用 app Flask(__name__)# 路由 app.route("/index", methods[GET]) def index():return "FLASK:欢迎访问主页!"if __name__ "__main__"…

OpenCV学习笔记

OpenCV基础 threshold函数的使用 https://blog.csdn.net/u012566751/article/details/77046445 图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出明显的黑白效果。在数字图像处理中,二值图像占有非常重要的地位&#xff0…

线扫相机DALSA--常见问题一:软件安装顺序

1.软件安装顺序 先安装:Sapera_LT_SDK,后安装Xtium-CL MX4驱动。 2.初次安装CamExpert,重启电脑后未找到相机 Settings(搜索协议)配置完毕后,需点击Detect Camera(一键查找相机)按钮,搜索相机。第一次查找相机耗时会略…

25期代码随想录算法训练营第三天 | 链表 part 2

目录 24. 两两交换链表中的节点19.删除链表的倒数第N个节点面试题 02.07. 链表相交142.环形链表II 24. 两两交换链表中的节点 链接 双指针 # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # …

聚观早报 |蔚来推出婚车服务;长城汽车第三季度财报

【聚观365】10月30日消息 蔚来推出婚车服务 长城汽车第三季度财报 AI汽车机器人极越01上市 谷歌投资初创公司Anthropic 东方财富第三季度营收 蔚来推出婚车服务 据蔚来汽车官方消息,蔚来宣布推出“蔚来用户专享”的婚庆用车定制服务。 据悉,该服务…

Mac删除照片快捷键ctrl加什么 Mac电脑如何批量删除照片

Mac电脑是很多人喜欢使用的电脑,它有着优美的设计、高效的性能和丰富的功能。如果你的Mac电脑上存储了很多不需要的照片,那么你可能会想要删除它们,以节省空间和提高速度。那么,Mac删除照片快捷键ctrl加什么呢?Mac电脑…