C++和js对比

1. 变量定义

  • C++
#include <iostream>
int main() {// 定义整型变量int num = 10;// 定义浮点型变量double pi = 3.14159;// 定义字符型变量char ch = 'A';std::cout << "num: " << num << ", pi: " << pi << ", ch: " << ch << std::endl;return 0;
}

// 定义变量(使用 let 或 var,这里用 let,推荐用于块级作用域)
let num = 10;
let pi = 3.14159;
let ch = 'A';
console.log(`num: ${num}, pi: ${pi}, ch: ${ch}`);
2. 数据类型
#include <iostream>
#include <string>
int main() {// 基本数据类型示例int age = 25;float height = 1.75f;  // 注意浮点数后面加 f 表示单精度bool isStudent = true;std::string name = "John";  // 使用标准库中的 string 类型处理字符串std::cout << "Age: " << age << ", Height: " << height << ", Is Student: " << isStudent << ", Name: " << name << std::endl;return 0;
}

let age = 25;
let height = 1.75;
let isStudent = true;
let name = "John";
console.log(`Age: ${age}, Height: ${height}, Is Student: ${isStudent}, Name: ${name}`);

控制结构

1. if-else 语句
  • C++
#include <iostream>
int main() {int score = 80;if (score >= 90) {std::cout << "优秀" << std::endl;} else if (score >= 80) {std::cout << "良好" << std::endl;} else if (score >= 60) {std::cout << "及格" << std::endl;} else {std::cout << "不及格" << std::endl;}return 0;
}
  • JavaScript
let score = 80;
if (score >= 90) {console.log("优秀");
} else if (score >= 80) {console.log("良好");
} else if (score >= 60) {console.log("及格");
} else {console.log("不及格");
}
2. for 循环

  • C++
#include <iostream>
int main() {for (int i = 0; i < 5; i++) {std::cout << i << " ";}std::cout << std::endl;return 0;
}

  • JavaScript
for (let i = 0; i < 5; i++) {console.log(i);
}
3. while 循环

  • C++
#include <iostream>
int main() {int i = 0;while (i < 5) {std::cout << i << " ";i++;}std::cout << std::endl;return 0;
}
  • JavaScript
let i = 0;
while (i < 5) {console.log(i);i++;
}

函数

1. 函数定义与调用
  • C++
#include <iostream>
// 函数声明
int add(int a, int b);
int main() {int result = add(3, 5);std::cout << "结果: " << result << std::endl;return 0;
}
// 函数定义
int add(int a, int b) {return a + b;
}
  • JavaScript
function add(a, b) {return a + b;
}
let result = add(3, 5);
console.log("结果: " + result);
2. 函数参数默认值(C++ 无此特性,JavaScript 有)
  • JavaScript
function greet(name = "Guest") {console.log("Hello, " + name);
}
greet();  // 输出 "Hello, Guest"
greet("John");  // 输出 "Hello, John"

面向对象编程

1. 类定义与对象创建
  • C++
#include <iostream>
class Rectangle {
public:// 构造函数Rectangle(int width, int height) : width(width), height(height) {}int getArea() {return width * height;}
private:int width;int height;
};
int main() {Rectangle rect(5, 3);std::cout << "矩形面积: " << rect.getArea() << std::endl;return 0;
}
  • JavaScript
class Rectangle {constructor(width, height) {this.width = width;this.height = height;}getArea() {return this.width * this.height;}
}
let rect = new Rectangle(5, 3);
console.log("矩形面积: " + rect.getArea());
2. 继承(示例为简单的单继承)
  • C++
#include <iostream>
class Shape {
public:virtual void draw() {std::cout << "绘制形状" << std::endl;}
};
class Circle : public Shape {
public:void draw() override {std::cout << "绘制圆形" << std::endl;}
};
int main() {Shape* shape = new Circle();shape->draw();delete shape;return 0;
}
  • JavaScript
class Shape {draw() {console.log("绘制形状");}
}
class Circle extends Shape {draw() {console.log("绘制圆形");}
}
let shape = new Circle();
shape.draw();

数组操作

1. 数组定义与初始化
  • C++
#include <iostream>
#include <array>
int main() {std::array<int, 5> arr = {1, 2, 3, 4, 5};for (int element : arr) {std::cout << element << " ";}std::cout << std::endl;return 0;
}
  • JavaScript
let arr = [1, 2, 3, 4, 5];
arr.forEach(element => console.log(element));
2. 数组长度获取
  • C++
#include <iostream>
#include <vector>
int main() {std::vector<int> vec = {1, 2, 3, 4, 5};std::cout << "数组长度: " << vec.size() << std::endl;return 0;
}
  • JavaScript
let vec = [1, 2, 3, 4, 5];
console.log("数组长度: " + vec.length);

异常处理(语法不同但功能类似,都是处理运行时错误等情况)

1. C++ 异常处理
#include <iostream>
#include <string>
int main() {try {int num1 = 10;int num2 = 0;if (num2 == 0) {throw std::string("除数不能为零");}int result = num1 / num2;std::cout << "结果: " << result << std::endl;} catch (const std::string& error) {std::cout << "捕获到异常: " << error << std::endl;}return 0;
}
2. JavaScript 异常处理
try {let num1 = 10;let num2 = 0;if (num2 === 0) {throw new Error("除数不能为零");}let result = num1 / num2;console.log("结果: " + result);
} catch (error) {console.log("捕获到异常: " + error.message);
}

以上示例只是 C++ 和 JavaScript 在诸多方面对比的一部分,它们在语法细节、内存管理、运行环境等还有很多不同之处,但这些示例可以帮助你初步了解它们在常见编程任务中的差异与共性。

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

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

相关文章

SpringBoot与MongoDB深度整合及应用案例

SpringBoot与MongoDB深度整合及应用案例 在当今快速发展的软件开发领域&#xff0c;NoSQL数据库因其灵活性和可扩展性而变得越来越流行。MongoDB&#xff0c;作为一款领先的NoSQL数据库&#xff0c;以其文档导向的存储模型和强大的查询能力脱颖而出。本文将为您提供一个全方位…

潜水打捞系统的功能概率和使用方法_深圳鼎跃

潜水打捞系统是用于帮助打捞沉物&#xff0c;提供足够的浮力支持&#xff0c;确保沉物从水底浮升到水面。它是一种高强度的袋状结构&#xff0c;能够在水下提供调节浮力的功能&#xff0c;广泛应用于水下打捞、海上救援、沉船打捞等领域。 一、功能概述 潜水打捞系统主要功能为…

网络互助在中国 共筑健康保障新生态

在数字化的浪潮中,网络互助行业以其独特的普惠价值和发展潜力,迅速在中国的健康保障领域崭露头角。网络互助行业以其低门槛、普惠性特点,有效缓解了中低收入人群大病医疗资金的压力,避免了因病致贫的风险。据艾媒咨询数据显示,2019年中国网络互助行业救助总人数超过3万人,救助总…

linux:python2.7.x升级至3.13.0详细记录(含踩坑内容)

部署linux系统默认2.7.x环境&#xff0c;但是有些项目部署需3.x以上&#xff0c;由于低版本也存在高风险漏洞&#xff0c; 查看openSSL版本信息 高于1.1.1 直接安装即可 [rootlocalhost ~]# openssl version OpenSSL 1.1.1f 31 Mar 2020 [rootlocalhost ~]#直接安装python3…

SpringMVC接收请求参数

&#xff08;5&#xff09;请求参数》五种普通参数 1.普通参数 代码块 RequestMapping("/commonParam") ResponseBody public String commonParam(String name,int age){System.out.println("普通参数传递 name > "name);System.out.println("普通…

洛谷P1597

语句解析 - 洛谷 语句解析 题目背景 木有背景…… 题目描述 一串长度不超过255的 PASCAL 语言代码&#xff0c;只有 a,b,c 三个变量&#xff0c;而且只有赋值语句&#xff0c;赋值只能是一个一位的数字或一个变量&#xff0c;每条赋值语句的格式是 [变量]:[变量或一位整数…

CPU 内存加压工具 stress-ng 介绍

01 文章背景介绍 在实车测试时&#xff0c;除了感知算法外&#xff0c;往往还会有别的 APP 在同时运行&#xff0c;从而挤压算法的资源占用&#xff0c;影响模型性能&#xff0c;降低部署效果。因此在项目早期做板端验证的时候&#xff0c;我们就可以使用一些工具对 CPU 和内存…

(C语言)文件操作

目录 文件 程序文件 数据文件 文件名 ​编辑数据文件的分类 文件的打开和关闭 流 标准流 1&#xff09;stdin 2&#xff09;stdout 3&#xff09;stderr 文件指针 文件的打开和关闭 对文件内容操作的函数 1&#xff09;fgetc&#xff0c;fputc 2&#xff09;fp…

低代码开发平台搭建思考与实战

什么是低代码开发平台&#xff1f; 低代码开发平台是一种平台软件&#xff0c;人们能通过它提供的图形化配置功能&#xff0c;快速配置出满足各种特定业务需求的功能软件。 具有以下特点&#xff1a; 提供可视化界面进行程序开发0代码或少量代码快速生成应用 什么是低代码产…

Axure设计之日期时间范围选择器

在产品设计和原型制作过程中&#xff0c;日期时间范围选择器是一个常见的需求。Axure作为一个强大的原型设计工具&#xff0c;能够帮助我们快速实现这一功能。通过利用Axure的动态面板、中继器、文本框、按钮以及时间函数&#xff0c;我们可以轻松制作一个功能完备的日期时间范…

汽车资讯新趋势:Spring Boot技术解读

5系统详细实现 5.1 管理员模块的实现 5.1.1 用户信息管理 汽车资讯网站的系统管理员可以管理用户&#xff0c;可以对用户信息修改删除审核以及查询操作。具体界面的展示如图5.1所示。 图5.1 用户信息管理界面 5.1.2 汽车品牌管理 系统管理员可以汽车品牌信息进行添加&#xf…

代码随想录第三十七天

52.携带研究材料 题目描述 小明是一位科学家&#xff0c;他需要参加一场重要的国际科学大会&#xff0c;以展示自己的最新研究成果。他需要带一些研究材料&#xff0c;但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等等&#xff0c;它们各自占据不同…

[开源] 告别黑苹果!用docker安装MacOS体验苹果系统

没用过苹果电脑的朋友可能会对苹果系统好奇&#xff0c;有人甚至会为了尝鲜MacOS去折腾黑苹果。如果你只是想体验一下MacOS&#xff0c;这里有个更简单更优雅的解决方案&#xff0c;用docker安装MacOS来体验苹果系统。 一、项目简介 项目描述 Docker 容器内的 OSX&#xff08…

redis延时队列

引入 <redisson.version>3.15.5</redisson.version><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>${redisson.version}</version></dependency>…

「四」体验HarmonyOS端云一体化开发模板——工程目录结构与云侧工程一键部署AGC云端

关于作者 白晓明 宁夏图尔科技有限公司董事长兼CEO、坚果派联合创始人 华为HDE、润和软件HiHope社区专家、鸿蒙KOL、仓颉KOL 华为开发者学堂/51CTO学堂/CSDN学堂认证讲师 开放原子开源基金会2023开源贡献之星 「目录」 「一」HarmonyOS端云一体化概要 「二」体验HarmonyOS端云一…

241121学习日志——[CSDIY] [InternStudio] 大模型训练营 [11]

CSDIY&#xff1a;这是一个非科班学生的努力之路&#xff0c;从今天开始这个系列会长期更新&#xff0c;&#xff08;最好做到日更&#xff09;&#xff0c;我会慢慢把自己目前对CS的努力逐一上传&#xff0c;帮助那些和我一样有着梦想的玩家取得胜利&#xff01;&#xff01;&…

STM32完全学习——使用SysTick精确延时(阻塞式)

一、SysTick相关寄存器 首先关于SysTick寄存器的数据在下面这个文件里面可以找到&#xff0c;平时那个数据手册是没有的。其次我这边使用的开发板是F407的开发板&#xff0c;关于这个寄存器的数据都是来自下面这个文件的截图&#xff0c;一般只会用到这3个寄存器。 二、使用标…

理解加密:常见算法及其应用

在信息安全领域&#xff0c;加密技术被广泛用于保护数据的机密性。加密的核心目的是将明文信息转化为密文&#xff0c;以防止未经授权的访问和数据泄露。本文将介绍几种常见的加密算法&#xff0c;包括对称加密、非对称加密和哈希算法&#xff0c;并提供 C# 代码示例&#xff0…

【机器学习】- 模型复杂度vs模型误差

目录 0.引言1.模型复杂度vs模型误差1.1. 模型误差的分类1.2 模型复杂度与误差的关系1.3 偏差-方差权衡&#xff08;Bias-Variance Tradeoff&#xff09;1.4 可视化&#xff1a;误差与复杂度1.5 如何选择模型复杂度&#xff1f;1.6 总结 2.方差描述含义&#xff1a;2.1 方差的定…

大数据调度组件之Apache DolphinScheduler

Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG 工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系&#xff0c;使调度系统在数据处理流程中开箱即用。 主要特性 易于部署&#xff0c;提供四种部署方式&#xff0c;包括Standalone、Cluster、Docker和…