【一天一门编程语言】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发展而来的脚本语言,是一种动态类型、弱类型、基于原型的语言,内…...
CMake调试器出炉:调试你的CMake脚本
Visual Studio 开发团队一直和 Kitware 紧密合作,致力于开发一个用于调试 CMake 脚本的调试器。 我们将继续这个工作,以便开发人员社区可以通过添加新功能和对其他 DAP 功能的支持来共同改进它。 我们很高兴地宣布,CMake 调试器的预览版现在…...
题解 # 二维矩阵最大矩形问题#
题目: 小明有一张N*M的方格纸,且部分小方格中涂了颜色,部分小方格还是空白。 给出N (2<Ns30)和M(2sMs30)的值,及每个小方格的状态((被涂了颜色小方格用数字1表示,空白小方格用数字0表示); 请…...
奔四的路上,依旧倔强的相信未来
本文首发于2022年12月31日 原标题: 奔四的路上,依旧倔强的相信未来!–我的2022年终总结 读大学那几年,一直保持着写日记和做计划的习惯,还记得大学毕业刚开始打工的时候,我的床头的墙上一定会画一张表,写上一个月的计划和一周的计划 计划也会有完不成的时候,但加深了…...
61 k8s + rancher + karmada容器化部署
文章目录 一、什么是rancher二、为什么使用rancher三、rancher安装1、细部介绍四、图形化操作1、执行2、补充五、 karmada1、官网2、细部介绍一、什么是rancher 1、Rancher 是一个 全栈式 的 Kubernetes 容器管理平台,为你提供在任何地方都能成功运行 Kubernetes 的工具。 二…...
Vue3的新特性变化,上手指南!
文章目录一、Vue3相比Vue2,更新了什么变化?二、Proxy 代理响应式原理三、组合式 API (Composition API)setup()函数:ref()函数reactive()函数组合式 setup 中使用 Props 父向子传递参数计算属性watch(数据监视)watchEffect&#x…...
OllyDbg
本文通过吾爱破解论坛上提供的OllyDbg版本为例,讲解该软件的使用方法 F2对鼠标所处的位置打下断点,一般表现为鼠标所属地址位置背景变红F3加载一个可执行程序,进行调试分析,表现为弹出打开文件框F4执行程序到光标处F5缩小还原当前…...
记一次键盘维修,最终修复
我的笔记本是华硕的K45VD,是我亲人在高二那年买的,之后就一直给我用,距今2023年已经差不多13年,它承载了太多记忆。在大学期间也给它升级,重要的零部件基本没问题。只在大学时加了8G内存和一个240G固态,换了…...
LeetCode 155.最小栈
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。实现 MinStack 类:MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int getMin(…...
C++学习笔记-重载运算符和重载函数
重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样,重载运算符有一个返回类型和一个参数列表。 C 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重…...
Java —— JDBC
引入mysql链接 创建表格 Navicat查看建表代码双击要打开的表,右侧顶端点击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 页面试真题
如果你不停地加班。却很少冒险,也很少学习,那你极大可能会陷入到内卷中。 为什么这么说呢?我们先来捋清楚「内卷」的概念: 「内卷化」简而言之就是:日复一日,越混越掉坑里。 所谓内卷化,指一种…...
9、面向对象、泛型与反射
目录一、构造函数二、继承与重写三、泛型四、反射1 - 反射的基本概念2 - 反射的基础数据类型3 - 反射APIa - 获取Type类型b - 获取struct成员变量的信息c - 获取struct成员方法的信息d - 获取函数的信息e - 判断类型是否实现了某接口五、reflect.Valuea - 空value判断b - 获取V…...
Python使用百度通用API进行翻译
想汉化StarUML这个软件,感觉工作量太大,想要用Python自动翻译。 结果网上找的一个个用不了,或者用一会儿就断。 于是自己手写了一个简单的,只有两个类:APIConfig和Translater 使用 demo my_api_config APIConfig(…...
JavaScript 弹窗
文章目录JavaScript 弹窗警告框确认框提示框换行JavaScript 弹窗 可以在 JavaScript 中创建三种消息框:警告框、确认框、提示框。 警告框 警告框经常用于确保用户可以得到某些信息。 当警告框出现后,用户需要点击确定按钮才能继续进行操作。 语法 wi…...
408复试day1
文章目录数据结构计算机组成原理操作系统计算机网络数据结构 深度优先遍历DFS: 首先访问图中起始顶点v,然后由v出发,访问与v邻接且未被访问的顶点v1,再访问与v1相邻的且未被访问的顶点v2……重复上述过程。当不能再继续向下访问时…...
gdb openocd jlink arm-a9调试
连接关系是这样的:gdb —> openocd —>(这里需要两个xx.cfg配置文件) jlink —> arm-a9板子 具体流程是这样的: 给jlink(硬件调试器)安装驱动,用USB Driver Tool这个软件,…...
Leetcode Solutions - Part 2
1. Two Sum 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按…...
外盘国际期货:围观那些奇葩的国际节日?
围观那些奇葩的国际节日? 2月24日:世界讨厌香菜日,号召全世界所以讨厌香菜的人一起抵制香菜,2016年世界反香菜联盟 3月21日:世界睡眠日,唤起全民对睡眠重要性的认识,2001年国际精神卫生组织 …...
Kubernetes之服务的基本管理
svc是kubernetes最核心的概念,通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并将请求进行负载分发到后端的各个容器应用上。pod生命周期短不稳定,pod异常后新生成的pod的IP会发生变化,通过…...
IPFS去中心化存储实战指南:黑马程序员音乐播放器项目开发完整教程
IPFS去中心化存储实战指南:黑马程序员音乐播放器项目开发完整教程 【免费下载链接】BlockChain 黑马程序员 120天全栈区块链开发 开源教程 项目地址: https://gitcode.com/gh_mirrors/blockchain95/BlockChain 你是否想过如何构建一个真正去中心化的音乐播放…...
告别虚拟机卡顿:在Windows 11的WSL2里搞定Lichee Nano交叉编译环境
告别虚拟机卡顿:在Windows 11的WSL2里搞定Lichee Nano交叉编译环境 对于嵌入式开发者来说,配置开发环境往往是个令人头疼的问题。传统虚拟机方案虽然能提供完整的Linux体验,但资源占用高、启动慢、与宿主系统交互不便等问题一直困扰着开发者。…...
智能手机相机光谱特性测量与多光谱成像技术
1. 智能手机相机光谱特性测量基础智能手机相机的光谱灵敏度函数(Spectral Sensitivity Function, SSF)和透射率函数是计算摄影领域的核心参数,它们决定了设备对光信号的响应特性。准确获取这些参数对色彩还原、光谱重建和白平衡校准等任务至关重要。1.1 光谱灵敏度函…...
光效崩坏?噪点泛滥?色温漂移?——Midjourney专业级光效渲染全流程校准协议,含ACEScg色彩空间适配模板
更多请点击: https://kaifayun.com 第一章:光效崩坏、噪点泛滥与色温漂移的系统性归因诊断 图像采集链路中出现的光效崩坏、噪点泛滥与色温漂移并非孤立现象,而是光学设计、传感器响应、ISP管线调度及环境耦合失配共同作用的结果。三者常呈现…...
Unity发行版DLL调试实战:DnSpy无源码IL级断点指南
1. 这不是“反编译”,而是Unity游戏开发者的日常调试手段你有没有遇到过这样的情况:接手一个Unity发行版游戏,想快速验证某个功能逻辑是否按预期执行,或者排查一个偶发的崩溃,但手头只有打包后的Assembly-CSharp.dll&a…...
pan-baidu-download:百度网盘多线程下载加速器架构解析与性能优化指南
pan-baidu-download:百度网盘多线程下载加速器架构解析与性能优化指南 【免费下载链接】pan-baidu-download 百度网盘下载脚本 项目地址: https://gitcode.com/gh_mirrors/pa/pan-baidu-download pan-baidu-download是一款基于Python开发的百度网盘命令行下载…...
1901-2022年中国气温变化分析实战:用这份1km栅格数据我们能发现什么?
1901-2022年中国气温变化分析实战:如何从1km栅格数据中挖掘气候演变规律当一份覆盖122年、分辨率精确到1公里的气温栅格数据摆在面前时,我们看到的不仅是数字矩阵,更是一部写在经纬度坐标里的气候变迁史诗。这份由逐月数据聚合生成的逐年气温…...
【深度解析】AI Coding 模型竞速:从 Claude Mythos 安全编码到 GPT-5.6 传闻,如何落地代码审查智能体
摘要 AI 编码模型正在从“代码补全”进入“复杂代码库理解、漏洞发现与自动修复”阶段。本文结合 Claude Mythos、Claude Opus 4.8 与 GPT-5.6 相关信息,解析新一代 Coding Agent 的技术趋势,并给出基于大模型 API 的代码安全审查实战方案。背景介绍&…...
告别CAJ格式困扰:3分钟学会用开源工具将知网文献转为PDF
告别CAJ格式困扰:3分钟学会用开源工具将知网文献转为PDF 【免费下载链接】caj2pdf Convert CAJ (China Academic Journals) files to PDF. 转换中国知网 CAJ 格式文献为 PDF。佛系转换,成功与否,皆是玄学。 项目地址: https://gitcode.com/…...
C++ vector容器总结
vector基本概念功能:vector数据结构和数组非常相似,也称为单端数组vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态扩展动态扩展:并不是在原空间之后续接新空间,而是找更大的内存空间&a…...
