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

1. 编程语言进化史与JavaScript

引言

作为一名开发者,理解编程语言的演进历史和核心特性是至关重要的。接下来将从编程语言的三个历史阶段入手,重点解析JavaScript的起源、特性及其与相关技术的关系,同时补充进制转换的基础知识,为初学者构建完整的知识体系。

一、编程语言的三大历史阶段

1. 机器语言(第一代)

核心特性

  • 直接使用二进制指令(0/1)与硬件交互
  • 每个CPU型号有独特指令集
  • 示例:00001000(加载指令) + 00000001(内存地址)

痛点

  • 开发效率极低(一个简单循环可能需要数百位二进制)
  • 完全依赖硬件,无跨平台性
  • 调试困难(修改一个指令可能导致整个程序崩溃)

2. 汇编语言(第二代)

核心改进

  • 使用助记符替代二进制(如MOV AX, 1
  • 引入符号地址(标签)
  • 示例:
    MOV AX, 5      ; 加载数值5到寄存器AX
    ADD AX, 3      ; AX = AX + 3
    

局限性

  • 仍需汇编器转换为机器码
  • 指令集与硬件强绑定
  • 开发效率较机器语言提升有限

3. 高级语言(第三代)

革命性突破

  • 抽象硬件细节(如C的for循环替代汇编的跳转指令)
  • 引入数据类型(int, float等)
  • 示例(C语言):
    int sum = 0;
    for(int i=1; i<=10; i++) {sum += i;
    }
    

分类维度

  1. 执行方式

    • 编译型(C/C++/Java):源代码→机器码
    • 解释型(JS/Python):源代码→字节码→执行
  2. 类型系统

    • 强类型(Java):int x = "hello"会报错
    • 弱类型(JS):let x = "hello"; x = 5合法
  3. 编程范式

    • 面向过程(C):void openDoor(Door d)
    • 面向对象(Java):d.open()

二、JavaScript深度解析

1. 起源与命名之谜

  • 1995年诞生于Netscape,原名Mocha→LiveScript→JavaScript
  • 命名策略:蹭Java热度(当时Java如日中天)
  • 实际关系:

相关文章:

1. 编程语言进化史与JavaScript

引言 作为一名开发者,理解编程语言的演进历史和核心特性是至关重要的。接下来将从编程语言的三个历史阶段入手,重点解析JavaScript的起源、特性及其与相关技术的关系,同时补充进制转换的基础知识,为初学者构建完整的知识体系。 一、编程语言的三大历史阶段 1. 机器语言(…...

Vue3 中 Axios 深度整合指南:从基础到高级实践引言

在现代前端开发中&#xff0c;与后端API的交互是构建动态应用的核心环节。Axios作为最流行的HTTP客户端之一&#xff0c;以其简洁的API和强大的功能在前端生态中占据重要地位。本文将全面探讨如何在Vue3项目中高效整合Axios&#xff0c;从基础配置到高级封装&#xff0c;从性能…...

MySQL#Select语句执行过程

服务端程序架构 MySQL 是典型的 C/S 架构&#xff0c;即 Client/Server 架构&#xff0c;服务器端程序mysqld。 Select语句执行过程 连接层 客户端和服务器端建立连接&#xff0c;客户端发送 SQL 至服务器端 SQL层 SQL语句处理 查询缓存&#xff1a; 缓存命中该SQL执行结果直…...

hbuilder中h5转为小程序提交发布审核

【注意】 [HBuilder] 11:59:15.179 此应用 DCloud appid 为 __UNI__9F9CC77 &#xff0c;您不是这个应用的项目成员。1、联系这个应用的所有者&#xff0c;请求加入项目成员&#xff08;https://dev.dcloud.net.cn "成员管理"-"添加项目成员"&#xff09;…...

文档注释:删还是不删

问题&#xff1a;代码中存在大量的文档注释&#xff0c;占用大量篇幅&#xff0c;一次难以看完整个文件&#xff0c;于是诞生了一个想法&#xff1a;删除所有文档注释&#xff0c;于是问了下 DeepWiki 文档注释对tree - sitter有影响吗&#xff1f;文档注释对Roocode大模型理解…...

【数据结构】单链表练习

1.链表的中间节点 https://leetcode.cn/problems/middle-of-the-linked-list/description/ 用快慢指针来解决 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* middleNode(struct ListNode* he…...

JVM 性能优化终极指南:全版本兼容、参数公式与场景实战

一、引言 JVM 优化的核心难点在于版本兼容性与场景适配性。从 Java 8 到 Java 21&#xff0c;JVM 的内存模型、GC 策略和默认参数发生了巨大变化&#xff1b;从高并发 Web 到大数据批处理&#xff0c;不同业务场景对延迟、吞吐量的要求也截然不同。本文基于历史会话中用户关注…...

分布式爬虫监控架构设计

1. 监控架构核心组件 1.1 日志集中管理 设计目标&#xff1a;聚合所有节点的运行日志&#xff0c;支持实时查询与异常分析。 实现方式&#xff1a; 日志采集&#xff1a;各节点通过 logging 模块将日志发送至中央存储&#xff08;如Elasticsearch或Redis&#xff09;。 日志…...

MySQL的参数 innodb_force_recovery 详解

MySQL的参数 innodb_force_recovery 详解 innodb_force_recovery 是 InnoDB 存储引擎的一个重要参数&#xff0c;用于在数据库崩溃恢复时控制恢复行为的级别。这个参数主要在数据库无法正常启动时使用&#xff0c;可以帮助我们从损坏的数据库中恢复数据。 一 参数概述 参数名…...

学习vue3:跨组件通信(provide+inject)

目录 一&#xff0c;关于跨组件通信概述 二&#xff0c;跨组件传值 案例1(爷传孙&#xff09; 三&#xff0c;跨组件传函数 案例2(爷传孙&#xff09; 疑问&#xff1a;孙子传给爷爷是否可行呢&#xff1f; 一&#xff0c;关于跨组件通信概述 之前我们学习了父子组件的传…...

Alibaba Sentinel 入门教程:从理论到实战

文章目录 第一部分&#xff1a;理论篇1. Sentinel 简介2. Sentinel 核心原理2.1 资源与规则2.2 Sentinel 工作主流程2.3 核心类解析 3. Sentinel 功能支持与使用流程3.1 流量控制3.2 熔断降级3.3 系统自适应保护3.4 热点参数限流3.5 黑白名单控制3.6 使用流程 4. Sentinel 架构…...

2.3 TypeScript 非空断言操作符(后缀 !)详解

在 TypeScript 中&#xff0c;当你开启了严格的空值检查&#xff08;strictNullChecks&#xff09;后&#xff0c;变量如果可能是 null 或 undefined&#xff0c;就必须在使用前进行显式的判断。为了在某些场景下简化代码&#xff0c;TypeScript 提供了非空断言操作符&#xff…...

【菜狗work前端】小程序加if判断时不及时刷新 vs Web

零、前提&#xff1a; 实现input输入数字不大于10000&#xff08;需要配合typenumber&#xff0c;maxlength5&#xff0c;这里没写&#xff09; 一、探究代码&#xff1a; <input v-model"model1" input"changeModel1" placeholder"请输入拒收件…...

01 NLP的发展历程和挑战

1.人工智能行业介绍 ANI、AGI、ASI 以下是弱人工智能&#xff08;ANI&#xff09;、强人工智能&#xff08;AGI&#xff09;和超强人工智能&#xff08;ASI&#xff09;的对比表格&#xff1a; 类型定义当前状态弱人工智能&#xff08;ANI&#xff09;专注于特定任务&#x…...

TCP 三次握手:详解与原理

无图、长文警告&#xff01;&#xff01;&#xff01;&#xff01; 文章目录 一、引言二、TCP 三次握手的过程&#xff08;一&#xff09;第一次握手&#xff1a;SYN&#xff08;同步序列号&#xff09;&#xff08;二&#xff09;第二次握手&#xff1a;SYN-ACK&#xff08;同…...

LabVIEW累加器标签通道

主要展示了 Accumulator Tag 通道的使用&#xff0c;通过三个并行运行的循环模拟不同数值的多个随机序列&#xff0c;分别以不同频率向累加器写入数值&#xff0c;右侧循环每秒读取累加器值&#xff0c;同时可切换查看每秒内每次事件的平均值&#xff0c;用于演示多线程数据交互…...

在 Unity 中,Start 方法直接设置 RectTransform 的位置,时出现问题,与预计位置不匹配。

改动之前的源代码&#xff1a;发现组件的位置&#xff0c;与设计的位置不一样&#xff0c;但是如果把这段代码&#xff0c;交给一个按钮按下回调&#xff0c;就不会出现问题。 void Start(){//初始化Text 行//读取配置文件&#xff1b;StaticDataObj obj Resources.Load<St…...

永磁同步电机控制算法--IP调节器

一、基本原理 在电机控制领域&#xff0c;现今普遍使用的是比例-积分(PI)控制器。然而&#xff0c;PI控制器有一些缺点&#xff0c;可能会在某些应用中产生一些问题&#xff0c;例如:一个非常快的响应&#xff0c;也同时具有过大的超调量。虽然设计PI控制器时&#xff0c;可以…...

Ubuntu 25.04 锁屏不能远程连接的解决方案

最近安装了一个 Ubuntu 25.04&#xff0c;偶然发现可以通过 windows 自带的 rdp 远程工具进行连接&#xff0c;内心狂喜。此外&#xff0c;还支持启动 VNC 协议&#xff0c;也就是默认支持了 rdp 和 vnc 连接。 看了以下&#xff0c;ubuntu 在用户级别下创建了一个远程桌面服务…...

Java 自动装箱和拆箱还有包装类的缓存问题

自动装箱和拆箱就是将基本数据类型和包装类之间进行自动的互相转换。JDK1.5 后&#xff0c; Java 引入了自动装箱(autoboxing)/拆箱(unboxing)。 自动装箱&#xff1a; 基本类型的数据处于需要对象的环境中时&#xff0c;会自动转为“对象”。 我们以 Integer 为例&#xff1a;…...

java-jdk8新特性Stream流

一、Stream流 是专业用于对集合或者数组进行便捷操作的。 1.1 Stream流的创建 主要分为Collection&#xff08;List与Set&#xff09;、Map、数组三种创建方式&#xff1a; //1.Collection集合的创建List<String> names new ArrayList<>();Collections.addAll(…...

大语言模型 21 - MCP 自动操作 Figma+Cursor 实现将原型转换为代码

MCP 基本介绍 官方地址&#xff1a; https://modelcontextprotocol.io/introduction “MCP 是一种开放协议&#xff0c;旨在标准化应用程序向大型语言模型&#xff08;LLM&#xff09;提供上下文的方式。可以把 MCP 想象成 AI 应用程序的 USB-C 接口。就像 USB-C 提供了一种…...

QNAP NEXTCLOUD 域名访问

我是用docker compose方式安装的&#xff0c;虽然不知道是不是这么个叫法&#xff0c;废话不多说。 背景&#xff1a;威联通container station安装了nextcloud和lucky&#xff0c;lucky进行的域名解析和反代 先在想安装的路径、数据存储路径、数据库路径等新建文件夹。再新建…...

Spring MVC深度解析:控制器与视图解析及RESTful API设计最佳实践

引言 在现代Java Web开发领域&#xff0c;Spring MVC框架凭借其优雅的设计和强大的功能&#xff0c;已成为构建企业级Web应用的首选框架。本文将深入探讨Spring MVC的核心机制——控制器与视图解析&#xff0c;并详细讲解如何设计符合RESTful风格的API。无论你是刚接触Spring …...

华为OD机试真题——信道分配(2025B卷:200分)Java/python/JavaScript/C/C++/GO最佳实现

2025 B卷 200分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…...

比亚迪“双剑”电池获中汽中心权威认证,堪称“移动安全堡垒”。

在新能源汽车发展中&#xff0c;电池安全是重中之重。比亚迪的刀片电池与闪充刀片电池提前通过电池新国标全项检测&#xff0c;获中汽中心权威认证&#xff0c;堪称“移动安全堡垒”。 传统电池极端条件下易热失控&#xff0c;而刀片电池独特长条形设计&#xff0c;似刀片般&am…...

【mysql】mysql的高级函数、高级用法

mysql是最常用的数据库之一&#xff0c;常见的函数用法大家应该都很熟悉&#xff0c;本文主要例举一些相对出现频率比较少的高级用法 (注&#xff1a;需注意mysql版本&#xff0c;大部分高级特性都是mysql8才有的) 多值索引与虚拟列 主要是解决字符串索引问题&#xff0c;光说…...

了解一下C#的SortedSet

基础概念 SortedSet 是 C# 中的一个集合类型&#xff0c;位于 System.Collections.Generic 命名空间下。它是一个自动排序的集合&#xff0c;用于存储不重复的元素&#xff0c;并且会根据元素的自然顺序&#xff08;默认排序&#xff09;或自定义比较器进行排序&#xff0c;内…...

【平面波导外腔激光器专题系列】用于光纤传感的低噪声PLC外腔窄线宽激光器

----翻译自Mazin Alalusi等人的文章 摘要 高性价比的 1550 nm DWDM平面外腔 &#xff08;PLANEX&#xff09; 激光器是干涉测量、布里渊、LIDAR 和其他光传感应用的最佳选择。其线宽<3kHz、低相位/频率噪声和极低的RIN。 简介 高性能光纤分布式传感技术是在过去几年中开发…...

Pytorch里面多任务Loss是加起来还是分别backward? | Pytorch | 深度学习

当你在深度学习中进入“多任务学习(Multi-task Learning)”的领域,第一道关卡可能不是设计网络结构,也不是准备数据集,而是:多个Loss到底是加起来一起backward,还是分别backward? 这个问题看似简单,却涉及PyTorch计算图的构建逻辑、自动求导机制、内存管理、任务耦合…...