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

【一天一门编程语言】JavaScript 语言程序设计极简教程

JavaScript 语言程序设计极简教程

用 markdown 格式输出答案。 不少于3000字。细分到2级目录。

一、JavaScript 简介

1.1 什么是 JavaScript

JavaScript 是一种由Netscape的LiveScript发展而来的脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

1.2 JavaScript 的用途

  • 网页特效:可以利用 JavaScript 实现网页特效,比如图片的滚动,文字的闪动,网页的拖拽等等;
  • 网页表单验证:可以利用 JavaScript 实现表单的输入验证,比如用户的用户名和密码的验证,验证码的输入等等;
  • 对浏览器的操作:可以利用 JavaScript 对浏览器进行操作,比如打开新窗口,切换页面,访问历史记录等等;
  • 用户系统:可以利用 JavaScript 构建用户系统,比如用户的登录,注册,记住密码等等;
  • 服务器通讯:可以利用 JavaScript 实现服务器与客户端的通讯,比如实现实时消息发送等等。

二、JavaScript 基础知识

2.1 JavaScript 变量

JavaScript 变量是指可以改变的量,它可以存储数据、操作数据、传递数据。

2.1.1 变量的声明

JavaScript 变量声明使用 var 关键字,如:

var a;

2.1.2 变量的赋值

变量可以通过赋值语句来赋值,如:

a = 10;

2.1.3 变量的命名规则

变量名可以由字母、数字、下划线组成,但不可以以数字开头,变量名对大小写敏感。

2.2 JavaScript 数据类型

JavaScript 支持六种数据类型,分别是:

  • Number:数值类型
  • String:字符串类型
  • Boolean:布尔类型
  • Undefined:未定义类型
  • Null:空类型
  • Object:对象类型

2.2.1 数值类型

JavaScript 支持数值类型,数值类型可以是整数、小数等,如:

var a = 10;  // 整数
var b = 3.14;  // 小数

2.2.2 字符串类型

JavaScript 支持字符串类型,字符串类型使用单引号或双引号表示,如:

var str1 = 'hello';  // 单引号
var str2 = "world";  // 双引号

2.2.3 布尔类型

JavaScript 支持布尔类型,布尔类型的值可以是 true 或 false,如:

var flag = true;

2.2.4 未定义类型

JavaScript 支持未定义类型,未定义类型表示变量未定义,如:

var a;  // 未定义

2.2.5 空类型

JavaScript 支持空类型,空类型表示变量为空,如:

var a = null;

2.2.6 对象类型

JavaScript 支持对象类型,对象类型表示一组数据和功能的集合,如:

var person = {name:"张三",age:20
};

2.3 JavaScript 运算符

JavaScript 支持多种运算符,包括算术运算符、比较运算符、赋值运算符等。

2.3.1 算术运算符

JavaScript 支持下面几种算术运算符:

运算符描述
+求和
-求差
*求积
/求商
%求余
++自增1
自减1

2.3.2 比较运算符

JavaScript 支持下面几种比较运算符:

运算符描述
==等于
!=不等于
>大于
<小于
>=大于等于
<=小于等于

2.3.3 赋值运算符

JavaScript 支持下面几种赋值运算符:

运算符描述
=等号,赋值运算符
+=加等号,加法赋值运算符
-=减等号,减法赋值运算符
*=乘等号,乘法赋值运算符
/=除等号,除法赋值运算符
%=模等号,求余赋值运算符

2.4 JavaScript 流程控制

JavaScript 支持多种流程控制,包括条件判断、循环控制等。

2.4.1 条件判断

JavaScript 支持 if 语句来进行条件判断,如:

if (a > 0) {// 执行语句
}

2.4.2 循环控制

JavaScript 支持 for 循环和 while 循环控制,如:

for 循环:

for (var i = 0; i < 10; i++) {// 执行语句
}

while 循环:

var i = 0;
while (i < 10) {// 执行语句i++;
}

2.5 JavaScript 函数

JavaScript 支持函数,函数用来定义一组语句,可以多次调用。

2.5.1 函数的定义

函数的定义使用 function 关键字,如:

function myFunction() {// 执行语句
}

2.5.2 函数的调用

函数的调用使用函数名,如:

myFunction();

2.5.3 函数的参数

函数可以接收参数,参数用逗号分隔,如:

function myFunction(param1, param2) {// 执行语句
}

2.5.4 函数的返回值

函数可以返回一个值,使用 return 语句,如:

function myFunction() {// 执行语句return 10;
}

在上面的例子中,函数 myFunction() 返回了一个数字 10。

一个函数可以返回多个值,使用数组或对象,如:

function myFunction() {var arr = [1, 2, 3, 4, 5];return arr;
}

在上面的例子中,函数 myFunction() 返回了一个数组 [1, 2, 3, 4, 5]。

一个函数也可以不返回任何值,如:

function myFunction() {// 执行语句
}

在上面的例子中,函数 myFunction() 不返回任何值。

2.5.5 匿名函数

匿名函数是没有名称的函数,通常用于定义一个即时函数,如:

(function () {// 执行语句
})();

在上面的例子中,定义了一个匿名函数,该函数没有参数,也没有返回值。

2.5.6 闭包

闭包是一个包含自由变量的函数,自由变量是指在函数外部定义的变量,闭包可以访问并修改这些变量,如:

var num = 10;
function myFunction() {var count = 0;return function () {num++;count++;return num + count;}
}var result = myFunction();
console.log(result()); // 11
console.log(result()); // 13
console.log(result()); // 15

在上面的例子中,定义了一个函数 myFunction(),该函数返回一个匿名函数,该匿名函数可以访问函数外的变量 num,并修改该变量的值。

相关文章:

【一天一门编程语言】JavaScript 语言程序设计极简教程

JavaScript 语言程序设计极简教程 用 markdown 格式输出答案。 不少于3000字。细分到2级目录。 一、JavaScript 简介 1.1 什么是 JavaScript JavaScript 是一种由Netscape的LiveScript发展而来的脚本语言&#xff0c;是一种动态类型、弱类型、基于原型的语言&#xff0c;内…...

CMake调试器出炉:调试你的CMake脚本

Visual Studio 开发团队一直和 Kitware 紧密合作&#xff0c;致力于开发一个用于调试 CMake 脚本的调试器。 我们将继续这个工作&#xff0c;以便开发人员社区可以通过添加新功能和对其他 DAP 功能的支持来共同改进它。 我们很高兴地宣布&#xff0c;CMake 调试器的预览版现在…...

题解 # 二维矩阵最大矩形问题#

题目&#xff1a; 小明有一张N*M的方格纸&#xff0c;且部分小方格中涂了颜色&#xff0c;部分小方格还是空白。 给出N (2<Ns30)和M(2sMs30)的值&#xff0c;及每个小方格的状态(&#xff08;被涂了颜色小方格用数字1表示&#xff0c;空白小方格用数字0表示)&#xff1b; 请…...

奔四的路上,依旧倔强的相信未来

本文首发于2022年12月31日 原标题: 奔四的路上,依旧倔强的相信未来!–我的2022年终总结 读大学那几年,一直保持着写日记和做计划的习惯,还记得大学毕业刚开始打工的时候,我的床头的墙上一定会画一张表,写上一个月的计划和一周的计划 计划也会有完不成的时候,但加深了…...

61 k8s + rancher + karmada容器化部署

文章目录 一、什么是rancher二、为什么使用rancher三、rancher安装1、细部介绍四、图形化操作1、执行2、补充五、 karmada1、官网2、细部介绍一、什么是rancher 1、Rancher 是一个 全栈式 的 Kubernetes 容器管理平台,为你提供在任何地方都能成功运行 Kubernetes 的工具。 二…...

Vue3的新特性变化,上手指南!

文章目录一、Vue3相比Vue2&#xff0c;更新了什么变化&#xff1f;二、Proxy 代理响应式原理三、组合式 API (Composition API)setup()函数:ref()函数reactive()函数组合式 setup 中使用 Props 父向子传递参数计算属性watch&#xff08;数据监视&#xff09;watchEffect&#x…...

OllyDbg

本文通过吾爱破解论坛上提供的OllyDbg版本为例&#xff0c;讲解该软件的使用方法 F2对鼠标所处的位置打下断点&#xff0c;一般表现为鼠标所属地址位置背景变红F3加载一个可执行程序&#xff0c;进行调试分析&#xff0c;表现为弹出打开文件框F4执行程序到光标处F5缩小还原当前…...

记一次键盘维修,最终修复

我的笔记本是华硕的K45VD&#xff0c;是我亲人在高二那年买的&#xff0c;之后就一直给我用&#xff0c;距今2023年已经差不多13年&#xff0c;它承载了太多记忆。在大学期间也给它升级&#xff0c;重要的零部件基本没问题。只在大学时加了8G内存和一个240G固态&#xff0c;换了…...

LeetCode 155.最小栈

设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。实现 MinStack 类:MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int getMin(…...

C++学习笔记-重载运算符和重载函数

重载的运算符是带有特殊名称的函数&#xff0c;函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样&#xff0c;重载运算符有一个返回类型和一个参数列表。 C 允许在同一作用域中的某个函数和运算符指定多个定义&#xff0c;分别称为函数重载和运算符重…...

Java —— JDBC

引入mysql链接 创建表格 Navicat查看建表代码双击要打开的表&#xff0c;右侧顶端点击ddl小方框 CREATE TABLE s (id int(6) NOT NULL,name varchar(20) COLLATE utf8_bin DEFAULT NULL,age int(11) DEFAULT NULL,gender varchar(2) COLLATE utf8_bin DEFAULT NULL,dept var…...

备战金三银四,熬夜半个月汇集大厂 Java 岗 1600 页面试真题

如果你不停地加班。却很少冒险&#xff0c;也很少学习&#xff0c;那你极大可能会陷入到内卷中。 为什么这么说呢&#xff1f;我们先来捋清楚「内卷」的概念&#xff1a; 「内卷化」简而言之就是&#xff1a;日复一日&#xff0c;越混越掉坑里。 所谓内卷化&#xff0c;指一种…...

9、面向对象、泛型与反射

目录一、构造函数二、继承与重写三、泛型四、反射1 - 反射的基本概念2 - 反射的基础数据类型3 - 反射APIa - 获取Type类型b - 获取struct成员变量的信息c - 获取struct成员方法的信息d - 获取函数的信息e - 判断类型是否实现了某接口五、reflect.Valuea - 空value判断b - 获取V…...

Python使用百度通用API进行翻译

想汉化StarUML这个软件&#xff0c;感觉工作量太大&#xff0c;想要用Python自动翻译。 结果网上找的一个个用不了&#xff0c;或者用一会儿就断。 于是自己手写了一个简单的&#xff0c;只有两个类&#xff1a;APIConfig和Translater 使用 demo my_api_config APIConfig(…...

JavaScript 弹窗

文章目录JavaScript 弹窗警告框确认框提示框换行JavaScript 弹窗 可以在 JavaScript 中创建三种消息框&#xff1a;警告框、确认框、提示框。 警告框 警告框经常用于确保用户可以得到某些信息。 当警告框出现后&#xff0c;用户需要点击确定按钮才能继续进行操作。 语法 wi…...

408复试day1

文章目录数据结构计算机组成原理操作系统计算机网络数据结构 深度优先遍历DFS&#xff1a; 首先访问图中起始顶点v&#xff0c;然后由v出发&#xff0c;访问与v邻接且未被访问的顶点v1&#xff0c;再访问与v1相邻的且未被访问的顶点v2……重复上述过程。当不能再继续向下访问时…...

gdb openocd jlink arm-a9调试

连接关系是这样的&#xff1a;gdb —> openocd —>&#xff08;这里需要两个xx.cfg配置文件&#xff09; jlink —> arm-a9板子 具体流程是这样的&#xff1a; 给jlink&#xff08;硬件调试器&#xff09;安装驱动&#xff0c;用USB Driver Tool这个软件&#xff0c;…...

Leetcode Solutions - Part 2

1. Two Sum 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按…...

外盘国际期货:围观那些奇葩的国际节日?

围观那些奇葩的国际节日&#xff1f; 2月24日&#xff1a;世界讨厌香菜日&#xff0c;号召全世界所以讨厌香菜的人一起抵制香菜&#xff0c;2016年世界反香菜联盟 3月21日&#xff1a;世界睡眠日&#xff0c;唤起全民对睡眠重要性的认识&#xff0c;2001年国际精神卫生组织 …...

Kubernetes之服务的基本管理

svc是kubernetes最核心的概念&#xff0c;通过创建Service&#xff0c;可以为一组具有相同功能的容器应用提供一个统一的入口地址&#xff0c;并将请求进行负载分发到后端的各个容器应用上。pod生命周期短不稳定&#xff0c;pod异常后新生成的pod的IP会发生变化&#xff0c;通过…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

全面解析数据库:从基础概念到前沿应用​

在数字化时代&#xff0c;数据已成为企业和社会发展的核心资产&#xff0c;而数据库作为存储、管理和处理数据的关键工具&#xff0c;在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理&#xff0c;到社交网络的用户数据存储&#xff0c;再到金融行业的交易记录处理&a…...

【java面试】微服务篇

【java面试】微服务篇 一、总体框架二、Springcloud&#xff08;一&#xff09;Springcloud五大组件&#xff08;二&#xff09;服务注册和发现1、Eureka2、Nacos &#xff08;三&#xff09;负载均衡1、Ribbon负载均衡流程2、Ribbon负载均衡策略3、自定义负载均衡策略4、总结 …...