当前位置: 首页 > news >正文

JavaScript零基础入门速通(中)

目录

1. 函数

1.1 函数声明

1.2 返回值

1.3 匿名函数

1.4 箭头函数

2. 对象

2.1 创建对象

2.2 访问和修改对象的属性

2.3 对象方法

3. 数组

3.1 创建数组

3.2 数组方法

3.3 遍历数组

4. 作用域

4.1 全局作用域

4.2 局部作用域

4.3 块级作用域

5. 事件处理

5.1 事件监听

5.2 事件对象

结语


大家好,我是小黄。

昨天我们介绍了 JavaScript 的基础概念和语法,包括变量声明、数据类型、运算符和控制流语句。今天,我们将继续深入探讨 JavaScript 的中级知识,包括函数、对象、数组、作用域以及事件处理等内容。

1. 函数

函数是 JavaScript 中的基本构建块,用于封装一段可复用的代码。通过函数,我们可以将常用的逻辑抽象成一个单元,并根据需要进行调用。

1.1 函数声明

函数可以通过关键字 function 来声明。以下是一个简单的函数声明示例:

function greet(name) {console.log("Hello, " + name + "!");
}greet("Alice");  // 输出 "Hello, Alice!"

这个函数名为 greet,接受一个参数 name,然后输出一条问候消息。你可以在函数体内执行任意 JavaScript 代码。

1.2 返回值

函数可以返回值,使用 return 语句来指定返回的结果。如果没有显式的返回值,函数默认返回 undefined

function add(a, b) {return a + b;
}let result = add(5, 3);  // result 的值为 8
console.log(result);

1.3 匿名函数

有时我们不需要给函数起一个名字,这时可以使用匿名函数。匿名函数通常用于回调或事件处理。

let sum = function(a, b) {return a + b;
};console.log(sum(2, 3));  // 输出 5

1.4 箭头函数

ES6 引入了箭头函数,它是函数的一种简化写法,语法更加简洁。箭头函数不会创建自己的 this,而是继承外部作用域的 this

const multiply = (a, b) => a * b;
console.log(multiply(4, 5));  // 输出 20

箭头函数与普通函数的区别在于省略了 function 关键字,并且只有一行代码时,函数体可以省略大括号 {}return

2. 对象

在 JavaScript 中,对象 是一种复杂数据类型,用于存储一组数据和功能(属性和方法)。对象通常由多个键值对(属性)组成,每个键是一个字符串,值可以是任何数据类型。

2.1 创建对象

你可以通过大括号 {} 创建一个对象,并在其中定义键值对。

let person = {name: "Alice",age: 25,greet: function() {console.log("Hello, " + this.name);}
};console.log(person.name);  // 输出 "Alice"
person.greet();            // 输出 "Hello, Alice"

2.2 访问和修改对象的属性

你可以使用点语法或方括号语法访问和修改对象的属性。

let car = {make: "Toyota",model: "Corolla",year: 2020
};// 使用点语法访问
console.log(car.make);  // 输出 "Toyota"// 使用方括号语法访问
console.log(car["model"]);  // 输出 "Corolla"// 修改属性
car.year = 2021;
console.log(car.year);  // 输出 2021

2.3 对象方法

对象可以包含方法(即函数),这些方法可以通过对象来调用。

let calculator = {add: function(a, b) {return a + b;},subtract: function(a, b) {return a - b;}
};console.log(calculator.add(5, 3));  // 输出 8
console.log(calculator.subtract(5, 3));  // 输出 2

3. 数组

数组是 JavaScript 中用于存储有序数据的对象。数组的元素可以是任何数据类型,并且可以包含多个不同类型的元素。数组在 JavaScript 中的下标从 0 开始。

3.1 创建数组

你可以使用方括号 [] 来创建数组,数组中的元素用逗号分隔。

let fruits = ["Apple", "Banana", "Cherry"];
console.log(fruits[0]);  // 输出 "Apple"
console.log(fruits[1]);  // 输出 "Banana"

3.2 数组方法

数组有许多内建方法,用于操作数组元素。以下是一些常见的方法:

  • push(): 向数组末尾添加一个或多个元素。
  • pop(): 移除数组末尾的元素。
  • shift(): 移除数组开头的元素。
  • unshift(): 向数组开头添加一个或多个元素。
let numbers = [1, 2, 3];// 添加元素
numbers.push(4);
console.log(numbers);  // 输出 [1, 2, 3, 4]// 移除元素
numbers.pop();
console.log(numbers);  // 输出 [1, 2, 3]// 移除开头元素
numbers.shift();
console.log(numbers);  // 输出 [2, 3]

3.3 遍历数组

你可以使用 for 循环或者数组的内建方法(如 forEach())来遍历数组。

let colors = ["red", "green", "blue"];// 使用 for 循环遍历
for (let i = 0; i < colors.length; i++) {console.log(colors[i]);
}// 使用 forEach 方法遍历
colors.forEach(function(color) {console.log(color);
});

4. 作用域

作用域是指变量、函数和对象可访问的区域。在 JavaScript 中,有两种主要的作用域:全局作用域局部作用域

4.1 全局作用域

在 JavaScript 中,声明在函数外部的变量是全局变量,这些变量在整个程序中都可以访问。

let globalVar = "I am a global variable";function showVar() {console.log(globalVar);  // 可以访问全局变量
}showVar();  // 输出 "I am a global variable"

4.2 局部作用域

在函数内部声明的变量是局部变量,只在函数内部可见,外部无法访问。

function localScope() {let localVar = "I am a local variable";console.log(localVar);  // 可以访问局部变量
}localScope();
// console.log(localVar);  // 错误:localVar 在外部无法访问

4.3 块级作用域

ES6 引入了 letconst,它们有块级作用域,即它们只能在声明它们的代码块内部访问。

if (true) {let blockVar = "I am inside a block";console.log(blockVar);  // 输出 "I am inside a block"
}
// console.log(blockVar);  // 错误:blockVar 只在 if 块内可见

5. 事件处理

JavaScript 允许我们监听并响应用户与网页的互动。常见的事件包括点击事件、鼠标事件、键盘事件等。

5.1 事件监听

你可以使用 addEventListener() 方法来监听元素的事件,并为事件指定回调函数。

let button = document.getElementById("myButton");button.addEventListener("click", function() {alert("按钮被点击了!");
});

在这个例子中,当用户点击按钮时,网页会弹出一个提示框。

5.2 事件对象

当事件发生时,浏览器会创建一个事件对象,并将其传递给事件处理函数。这个事件对象包含了事件的详细信息,例如鼠标位置、按键代码等。

button.addEventListener("click", function(event) {console.log("点击位置: " + event.clientX + ", " + event.clientY);
});

结语

在这一部分中,我们学习了 JavaScript 中的重要概念,包括函数、对象、数组、作用域以及事件处理。这些是编写交互性强的网页应用和 JavaScript 程序的基础。

各位小伙伴还在BOSS直聘hr已读不回?!试试这个宝藏小程序!大家快看这里。

创作不易,各位帅气漂亮的小伙伴点个关注再走呗!!

相关文章:

JavaScript零基础入门速通(中)

目录 1. 函数 1.1 函数声明 1.2 返回值 1.3 匿名函数 1.4 箭头函数 2. 对象 2.1 创建对象 2.2 访问和修改对象的属性 2.3 对象方法 3. 数组 3.1 创建数组 3.2 数组方法 3.3 遍历数组 4. 作用域 4.1 全局作用域 4.2 局部作用域 4.3 块级作用域 5. 事件处理 5…...

【Yarn Bug】 yarn 安装依赖出现的网络连接问题

最近&#xff0c;在初始化 Ant Design Pro 前端脚手架过程中&#xff0c;使用 yarn 安装依赖时遇到了网络连接问题&#xff0c;具体错误信息提示为 info There appears to be trouble with your network connection. Retrying...。通过百度查询&#xff0c;得知出现这种问题的原…...

字节青训Marscode_5:寻找最大葫芦——最新题解

步骤1&#xff1a;问题定义与分析 输入条件&#xff1a; 整数n&#xff1a;牌的数量整数max&#xff1a;葫芦牌面值之和的上限数组array&#xff1a;n张牌的牌面值 输出条件&#xff1a; 两个整数组成的数组[a,b]&#xff1a; a表示三张相同牌的牌面值b表示两张相同牌的牌面值如…...

MySQL —— MySQL 程序

目录 前言 一、MySQL 程序简介 二、mysqld -- MySQL 服务器 三、mysql -- MySQL 客户端 1. mysql 客户端简介 2. mysql 客户端选项 &#xff08;1&#xff09;指定选项的方式 &#xff08;2&#xff09;mysql 客户端命令常用选项 &#xff08;3&#xff09;在命令行中使…...

LLamafactory API部署与使用异步方式 API 调用优化大模型推理效率

文章目录 背景介绍第三方大模型API 介绍LLamafactory 部署API大模型 API 调用工具类项目开源 背景介绍 第三方大模型API 目前&#xff0c;市面上有许多第三方大模型 API 服务提供商&#xff0c;通过 API 接口向用户提供多样化的服务。这些平台不仅能提供更多类别和类型的模型…...

不玩PS抠图了,改玩Python抠图

网上找了两个苏轼的印章图片&#xff1a; 把这两个印章抠出来的话&#xff0c;对于不少PS高手来说是相当容易&#xff0c;但是要去掉其中的水印&#xff0c;可能要用仿制图章慢慢描绘&#xff0c;图章的边缘也要慢慢勾画或者用通道抠图之类来处理&#xff0c;而且印章的红色也不…...

三维渲染中顺序无关的半透明混合(OIT)(一Depth Peeling)

>本文收集关于透明对象渲染技术中关于OIT技术的资料&#xff0c;尝试用简单的逻辑对这些内容进行整理。 1、透明对象的特殊对待 不要小瞧png图片和jpg图片的差异&#xff01;在一般的三维平台&#xff0c;png代表的是带透明通道的纹理&#xff0c;而jpg代表的是不带透明的…...

Linux零基础入门--Makefile和make--纯干货无废话!!

目录 Makefile的概念与使用 Makefile的编写 多个源文件的Makefile编写 Makefile的概念与使用 Makefile其实是linux中的一种包含构建指令的文件&#xff0c;用于自动化构建 一个工程中的源文件不计数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;makefi…...

vim编辑器的一些配置和快捷键

记录vim编辑器的一些配置和快捷键&#xff0c;边学边用&#xff1a; yy 复制dd 删除p&#xff1a;粘贴ctrly 取消撤销u&#xff1a;撤销:w 写入:q 退出a/i 插入O: 上方插入一个空行o&#xff1a;下方插入一个空行:e 打开文件编辑 其他配置&#xff1a; 上移一行和下移一行&a…...

电子应用设计方案-31:智能AI音响系统方案设计

智能 AI 音响系统方案设计 一、引言 智能 AI 音响作为一种新兴的智能家居设备&#xff0c;通过融合语音识别、自然语言处理、音频播放等技术&#xff0c;为用户提供便捷的语音交互服务和高品质的音乐体验。本方案旨在设计一款功能强大、性能稳定、用户体验良好的智能 AI 音响系…...

【设计模式】【结构型模式(Structural Patterns)】之装饰模式(Decorator Pattern)

1. 设计模式原理说明 装饰模式&#xff08;Decorator Pattern&#xff09; 是一种结构型设计模式&#xff0c;它允许在不改变对象接口的前提下&#xff0c;动态地给对象增加额外的责任或功能。这种模式创建了一个装饰类&#xff0c;用于包装原有的类&#xff0c;并在保持类方法…...

【AI】JetsonNano启动时报错:soctherm OC ALARM

1、问题描述 将JetsonNano烧写SD卡镜像为Ubuntu20.04后&#xff0c;启动时报错&#xff1a;soctherm OC ALARM&#xff0c;启动失败&#xff1b;然后系统一直重启 2、原因分析 “soctherm OC ALARM”是检测到系统温度超过安全阈值时发出的过热警告。 “soctherm”代表系统…...

QT:生成二维码 QRCode

目录 1.二维码历史2.QT源码3.界面展示4.工程源码链接 1.二维码历史 二维码&#xff08;2-Dimensional Bar Code&#xff09;&#xff0c;是用某种特定的几何图形按一定规律在平面&#xff08;二维方向上&#xff09;分布的黑白相间的图形记录数据符号信息的。它是指在一维条码…...

【LeetCode刷题之路】120:三角形最小路径和的两种解法(动态规划优化)

LeetCode刷题记录 &#x1f310; 我的博客主页&#xff1a;iiiiiankor&#x1f3af; 如果你觉得我的内容对你有帮助&#xff0c;不妨点个赞&#x1f44d;、留个评论✍&#xff0c;或者收藏⭐&#xff0c;让我们一起进步&#xff01;&#x1f4dd; 专栏系列&#xff1a;LeetCode…...

神经网络中常见的激活函数Sigmoid、Tanh和ReLU

激活函数在神经网络中起着至关重要的作用&#xff0c;它们决定了神经元的输出是否应该被激活以及如何非线性地转换输入信号。不同的激活函数适用于不同的场景&#xff0c;选择合适的激活函数可以显著影响模型的性能和训练效率。以下是三种常见的激活函数&#xff1a;Sigmoid、T…...

适用于学校、医院等低压用电场所的智能安全配电装置

引言 电力&#xff0c;作为一种清洁且高效的能源&#xff0c;极大地促进了现代生活的便捷与舒适。然而&#xff0c;与此同时&#xff0c;因使用不当或维护缺失等问题&#xff0c;漏电、触电事件以及电气火灾频发&#xff0c;对人们的生命安全和财产安全构成了严重威胁&#xf…...

基于python爬虫的智慧人才数据分析系统

废话不多说&#xff0c;先看效果图 更多效果图可私信我获取 源码分享 import os import sysdef main():"""Run administrative tasks."""os.environ.setdefault(DJANGO_SETTINGS_MODULE, 智慧人才数据分析系统.settings)try:from django.core.m…...

LeetCode-315. Count of Smaller Numbers After Self

目录 题目描述 解题思路 【C】 【Java】 复杂度分析 LeetCode-315. Count of Smaller Numbers After Selfhttps://leetcode.com/problems/count-of-smaller-numbers-after-self/description/ 题目描述 Given an integer array nums, return an integer array counts whe…...

根据导数的定义计算导函数

根据导数的定义计算导函数 1. Finding derivatives using the definition (使用定义求导)1.1. **We want to differentiate f ( x ) 1 / x f(x) 1/x f(x)1/x with respect to x x x**</font>1.2. **We want to differentiate f ( x ) x f(x) \sqrt{x} f(x)x ​ wi…...

WPF关于打开新窗口获取数据的回调方法的两种方式

一种基于消息发送模式 一种基于回调机制 基于消息发送模式 父页面定义接收的_selectedPnNumberStandarMsg保证是唯一 Messenger.Default.Register<PlateReplaceApplyModel>(this, _selectedPnNumberStandarMsgToken, platePnNumberModel > { …...

复杂网络(四)

一、规则网络 孤立节点网络全局耦合网络&#xff08;又称完全网络&#xff09;星型网络一维环二维晶格 编程实践&#xff1a; import networkx as nx import matplotlib.pyplot as pltn 10 #创建孤立节点图 G1 nx.Graph() G1.add_nodes_from(list(range(n))) plt.figure(f…...

用MATLAB符号工具建立机器人的动力学模型

目录 介绍代码功能演示拉格朗日方法回顾求解符号表达式数值求解 介绍 开发机器人过程中经常需要用牛顿-拉格朗日法建立机器人的动力学模型&#xff0c;表示为二阶微分方程组。本文以一个二杆系统为例&#xff0c;介绍如何用MATLAB符号工具得到微分方程表达式&#xff0c;只需要…...

SQL优化与性能——数据库设计优化

数据库设计优化是提高数据库性能、确保数据一致性和支持业务增长的关键环节。无论是大型企业应用还是小型项目&#xff0c;合理的数据库设计都能够显著提升系统性能、减少冗余数据、优化查询响应时间&#xff0c;并降低维护成本。本章将深入探讨数据库设计中的几个关键技术要点…...

FPGA存在的意义:为什么adc连续采样需要fpga来做,而不会直接用iic来实现

FPGA存在的意义&#xff1a;为什么adc连续采样需要fpga来做&#xff0c;而不会直接用iic来实现 原因ADS111x连续采样实现连续采样功能说明iic读取adc的数据速率 VS adc连续采样的速率adc连续采样的速率iic读取adc的数据速率结论分析 FPGA读取adc数据问题一&#xff1a;读取adc数…...

我们来学mysql -- 事务之概念(原理篇)

事务的概念 题记一个例子一致性隔离性原子性持久性 题记 在漫长的编程岁月中&#xff0c;存在一如既往地贯穿着工作&#xff0c;面试的概念这类知识点&#xff0c;事不关己当然高高挂起&#xff0c;精准踩坑时那心情也的却是日了&#x1f436;请原谅我的粗俗&#xff0c;遇到B…...

基于特征子空间的高维异常检测:一种高效且可解释的方法

本文将重点探讨一种替代传统单一检测器的方法&#xff1a;不是采用单一检测器分析数据集的所有特征&#xff0c;而是构建多个专注于特征子集(即子空间)的检测器系统。 在表格数据的异常检测实践中&#xff0c;我们的目标是识别数据中最为异常的记录&#xff0c;这种异常性可以…...

看不见的彼方:交换空间——小菜一碟

有个蓝色的链接&#xff0c;先去看看两年前的题目的write up &#xff08;https://github.com/USTC-Hackergame/hackergame2022-writeups/blob/master/official/%E7%9C%8B%E4%B8%8D%E8%A7%81%E7%9A%84%E5%BD%BC%E6%96%B9/README.md&#xff09; 从别人的write up中了解到&…...

YOLO模型训练后的best.pt和last.pt区别

在选择YOLO模型训练后的权重文件best.pt和last.pt时&#xff0c;主要取决于具体的应用场景‌&#xff1a;‌12 ‌best.pt‌&#xff1a;这个文件保存的是在训练过程中表现最好的模型权重。通常用于推理和部署阶段&#xff0c;因为它包含了在验证集上表现最好的模型权重&#x…...

Pareidoscope - 语言结构关联工具

文章目录 关于 Pareidoscope安装使用方法输入格式语料库查询 将语料库转换为 SQLite3 数据库两种语言结构之间的关联简单词素分析关联共现和伴随词素分析相关的更大结构可视化关联结构 关于 Pareidoscope Pareidoscope 是一组 用于确定任意语言结构之间 关联的工具&#xff0c…...

GPT(Generative Pre-trained Transformer) 和 Transformer的比较

GPT&#xff08;Generative Pre-trained Transformer&#xff09; 和 Transformer 的比较 flyfish 1. Transformer 是一种模型架构 Transformer 是一种通用的神经网络架构&#xff0c;由 Vaswani 等人在论文 “Attention Is All You Need”&#xff08;2017&#xff09;中提…...

手动更新wordpress/深圳专业建站公司

问题&#xff1a;springCloud 注册中心页面&#xff0c;一直不能显示服务提供者的信息&#xff0c;配置都是对的&#xff0c;也没有报错&#xff0c;但是这里一直没有服务提供者的信息 解决方法&#xff1a;在网上查到需要在消息提供者模块添加依赖 <dependency><gro…...

网站开发合同有效期/35个成功的市场营销策划案例

在很多企业里&#xff0c;人力资源部门相对独立于其他部门&#xff0c;但实际上人力资源部门所管的事情都是面向所有员工的&#xff0c;影响到生产、销售、服务以及整个公司。专业的HR管理者在企业里作为不同的角色都面临着一些问题&#xff0c;对制定科学的人力资源战略和合理…...

wordpress数据包/seo短视频网页入口引流免费

发现在Linux上使用rlwrap工具可以实现命令回退&#xff0c;想在windows dos下一样&#xff0c;这样管理Oracle数据库将变的非常简单快捷&#xff0c;下面介绍安装及用法。rlwrap下载地址:在2010年LinuxIDC.com\9月\在Linux上使用rlwrap实现像dos功能使用上下键查看命令\安装过程…...

免费自制app软件靠谱么/网站搜索优化方法

Nginx默认没有开启利用多核CPU,我们可以通过增加worker_cpu_affinity配置参数来充分利用多核CPU。CPU是任务处理&#xff0c;计算最关键的资源&#xff0c;CPU核越多&#xff0c;性能就越好。配置Nginx多核CPU,worker_cpu_affinity使用方法和范例1. 2核CPU&#xff0c;开启2个进…...

做网站可以申请专利吗/各大网站推广平台

目录 模块 模块的使用 if __name__ "__main__": 包 模块 当代码量很大的时候&#xff0c;我们不可能把所有的代码写在一个文件中&#xff0c;所以这时候就需要分多个.py文件进行写代码。一个.py文件就是一个模块。如文件名为main.py&#xff0c;那么模块名就为…...

建设银行大连市分行网站/服务营销案例

以下面的HTML5代码为例来学学习页面的百分比布局&#xff1a; <div class"comic"><img src"fate.png" alt"Fate"><h1>Fate</h1> </div> <div class"comic"><img src"hulk.png" alt…...