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.rhkb.cn/news/475928.html

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

相关文章

Springboot 整合 Java DL4J 搭建智能问答系统

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

基于SpringBoot的“网上书城管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“网上书城管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 系统首页界面图 用户注册界面…

测评部署和管理 WordPress 最方便的面板

新版宝塔面板快速搭建WordPress新手教程 - 倚栏听风-Morii - 博客园 初学者使用1Panel面板快速搭建WordPress网站 - 倚栏听风-Morii - 博客园 可以看到&#xff0c;无论是宝塔还是1Panel&#xff0c;部署和管理WordPress都有些繁琐&#xff0c;而且还需要额外去配置Nginx和M…

网络安全问题概述

1.1.计算机网络面临的安全性威胁 计算机网络上的通信面临以下的四种威胁&#xff1a; (1) 截获——从网络上窃听他人的通信内容。 (2) 中断——有意中断他人在网络上的通信。 (3) 篡改——故意篡改网络上传送的报文。可应用于域名重定向&#xff0c;即钓鱼网站。 (4) 伪造——伪…

视觉顶会论文 | 基于Swin Transformer的轴承故障诊断

往期精彩内容&#xff1a; Python-凯斯西储大学&#xff08;CWRU&#xff09;轴承数据解读与分类处理 Pytorch-LSTM轴承故障一维信号分类(一)-CSDN博客 Pytorch-CNN轴承故障一维信号分类(二)-CSDN博客 Pytorch-Transformer轴承故障一维信号分类(三)-CSDN博客 三十多个开源…

Altenergy电力系统控制软件 status_zigbee SQL注入漏洞复现(CVE-2024-11305)

0x01 产品简介 Altenergy电力系统控制软件是Altenergy Power System推出的一款专业软件。旨在为用户提供全面、高效、安全的电力系统控制解决方案。广泛应用于各类电力系统领域,如电力调度中心、发电厂、变电站、工业园区等。通过该软件的应用,用户可以实现对电力系统的全面…

java: spire.pdf.free 9.12.3 create pdf

可以用windows 系统中文字体&#xff0c;也可以从文件夹的字体文件 /*** encoding: utf-8* 版权所有 2024 ©涂聚文有限公司* 许可信息查看&#xff1a;言語成了邀功盡責的功臣&#xff0c;還需要行爲每日來值班嗎* 描述&#xff1a;* # Author : geovindu,Geovin Du 涂…

AUTOSAR网络管理中的主动唤醒与被动唤醒

文章目录 1、主动/被动唤醒源、主动/被动唤醒节点2、网络拓扑说明 1、主动/被动唤醒源、主动/被动唤醒节点 休眠唤醒需要有一个触发源来进行触发&#xff0c;我们常用的NM报文是其中的载体之一。休眠唤醒的触发源又分为主动唤醒源和被动唤醒源。 主动唤醒源&#xff0c;就是能…

索贝融媒体 Sc-TaskMonitoring/rest/task/search SQL注入漏洞复现

0x01 产品简介 索贝融媒体产品是成都索贝数码科技股份有限公司(简称索贝)为各级电视台和媒体机构打造的一套集互联网和电视融合生产的解决方案。其代表产品为MCH2.0融合媒体生产业务系统,该系统带来了媒体领域一种全新的融合生产流程和工作机制,具有全方位的资源汇聚能力、…

【PyTorch】Pytorch中torch.nn.Conv1d函数详解

1. 函数定义 torch.nn.Conv1d 是 PyTorch 中用于一维卷积操作的类。定义如下&#xff1a; 官方文档&#xff1a;https://pytorch.ac.cn/docs/stable/generated/torch.nn.Conv1d.html#torch.nn.Conv1d torch.nn.Conv1d(in_channels, out_channels, kernel_size, stride1,paddi…

[大数据]Trino

Trino安装部署-CSDN博客 Central Repository: io/trino/trino-server 下载地址: repo1.maven.org/maven2/io/trino/Central Repository: io/trino/trino-serverhttps://repo1.maven.org/maven2/io/trino/trino-server/ vim /etc/security/limits.conf * soft nofile 131072…

三种复制只有阅读权限的飞书网络文档的方法

大家都知道&#xff0c;飞书是一款功能强大的在线协作工具&#xff0c;可以帮助团队更高效地协作和沟通。越来越多的资料都在使用飞书文档&#xff0c;在使用飞书的过程中&#xff0c;发现很多文档没有复制权限&#xff0c;如果想要摘抄笔记&#xff0c;只能一个字一个字地敲出…

HTML5拖拽API学习 托拽排序和可托拽课程表

文章目录 前言拖拽API核心概念拖拽式使用流程例子注意事项综合例子&#x1f330; 可拖拽课程表拖拽排序 前言 前端拖拽功能让网页元素可以通过鼠标或触摸操作移动。HTML5 提供了标准的拖拽API&#xff0c;简化了拖放操作的实现。以下是拖拽API的基本使用指南&#xff1a; 拖拽…

缓冲区的奥秘:解析数据交错的魔法

目录 一、理解缓存区的好处 &#xff08;一&#xff09;直观性的理解 &#xff08;二&#xff09;缓存区的好处 二、经典案例分析体会 &#xff08;一&#xff09;文件读写流&#xff08;File I/O Buffering&#xff09; BufferedOutputStream 和 BufferedWriter 可以加快…

解决upload上传之后,再上传没有效果

解决upload上传之后&#xff0c;再上传没有效果 注释&#xff1a;这是第二次上传&#xff0c;两次网络请求都是第一次上传的&#xff0c;这次上传没有网络请求 原因&#xff1a;在我的代码里我限制了上传数量为1&#xff0c;然后上传成功后&#xff0c;上传列表没有清空&#…

【Linux】<共享内存应用>——模拟实现不同进程把hello字符对<共享内存文件对象>的放入和取出操作

前言 大家好吖&#xff0c;欢迎来到 YY 滴Linux系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C Linux的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的…

Sigrity SPEED2000 TDR TDT Simulation模式如何进行时域阻抗仿真分析操作指导-差分信号

Sigrity SPEED2000 TDR TDT Simulation模式如何进行时域阻抗仿真分析操作指导-差分信号 Sigrity SPEED2000 TDR TDT Simulation模式如何进行时域阻抗仿真分析操作指导-单端信号详细介绍了单端信号如何进行TDR仿真分析,下面介绍如何对差分信号进行TDR分析,还是以下图为例进行分…

视频修复技术和实时在线处理

什么是视频修复&#xff1f; 视频修复技术的目标是填补视频中的缺失部分&#xff0c;使视频内容连贯合理。这项技术在对象移除、视频修复和视频补全等领域有着广泛的应用。传统方法通常需要处理整个视频&#xff0c;导致处理速度慢&#xff0c;难以满足实时处理的需求。 技术发…

golang调用webview,webview2,go-webview2

go version go1.20 windows/amd64 先要了解一些第三方库 1、webview/webview 它是一个跨平台的轻量级的webview库&#xff0c;面向的是C/C&#xff0c;使用它可以构建跨平台的GUI。webview就是浏览器内核&#xff0c;在不同操作系统上是不同的库&#xff0c;比如在windows上…

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

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