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

JS基础以及与Java区别学习笔记

环境:Node.js(后端js)
1.变量
存放数据
(存储数字、文字、对象等),程序所有数据都依靠变量承载。

let(可变)、const(常量)、var(旧语法)

const username = "小李"; // 常量,不可重新赋值
let age = 22;            // 可变变量
age = 23;
// username = "小王"; // 报错!const禁止重赋值

与Java对比,差别很大

var a = 1; // 老语法,函数作用域,存在变量提升
let b = 2; // 块级作用域,可修改
const c = 3; // 块级作用域,常量【不能直接重新赋值】

对比 Java

int num = 10; // 必须写类型
final int num = 10;

JS 弱类型:变量没有固定类型

let x = 10;
x = "文字"; // 合法,Java直接编译报错

Java:后端静态语言、面向类、编译型、强类型
JavaScript:最初浏览器脚本语言(现在可后端 Node.js)、动态弱类型、原型面向对象、解释执行

2. 数据类型
作用:区分数据,决定自己能对数据执行哪些操作(文字不能做加减乘除)
原始类型:number string boolean undefined null bigint symbol
引用类型:Object Array Function

和 Java 区别:没有 int、long、double,所有数字统一 number

const num = 100;                 // number
const str = "node后端学习";      // string
const flag = true;               // boolean
let empty;                       // undefined 声明未赋值
const emptyData = null;          // null 手动置空

3. 函数
一段可重复调用、具备独立功能的代码块
作用:封装重复逻辑,实现代码复用;接收参数,返回结果。对应 Java 里的方法。

// 普通函数
function sum(a, b) {return a + b;
}// 箭头函数(简写形式)
const sum2 = (a, b) => a + b;console.log(sum(2,3));
console.log(sum2(5,6));

4. 对象 Object
一组键值对,用来描述一个事物(实体)。对应 Java 实体类 Bean。
作:打包多个关联数据,比如用户、商品信息。

const user = {name: "张",age: 20,// 对象内可以存放函数sayHello: function(){console.log("你好!")}
};
console.log(user.name);
user.sayHello();
user.gender = "男"; // 动态新增属性(Java做不到)

5. 数组 Array
有序容器,可以存放一堆数据,长度可变,支持不同类型元素共存。
≈ Java ArrayList
作:批量保存多条数据,例如用户列表、订单列表。
常用方法:push新增、filter筛选、map转换数据

// 用户数组
const userList = ["张","李","王"];
userList.push("赵"); // 末尾新增元素
console.log(userList[0]); // 通过下标取值

6. 循环 & 判断(控制流程)
判断 : 根据条件选择执行代码;

关键字 if else / switch / 三元表达式

const age = 18;
if (age >= 18) {console.log("成年");
} else {console.log("未成年");
}

循环 : 重复执行代码块。

常用 for / while / for...of(遍历数组)

const arr = [10,20,30];
for(const item of arr){console.log(item);
}

组合技:变量 + 类型 + 函数 + 对象 + 数组 + 判断循环

场景:筛选成年用户,并且拼接信息返回

// 1. 变量 + 对象 + 数组:定义用户列表
const userList = [{name:"明",age:17},{name:"红",age:19},{name:"泽",age:22}
];// 2. 封装函数:筛选成年用户(函数+判断+循环)
function getAdultUsers(users){// 新建数组存放结果const result = [];// 循环遍历所有用户for(const user of users){// 判断年龄if(user.age >= 18){result.push(user);}}return result;
}// 3. 调用函数,接收返回数据(变量接收结果)
const adultList = getAdultUsers(userList);
console.log(adultList);

简化写法

const userList = [{name:"明",age:17},{name:"红",age:19},{name:"泽",age:22}
];
// 数组filter + 箭头函数 一行完成筛选
const adultList = userList.filter(user => user.age >= 18);
console.log(adultList);
http://www.jsqmd.com/news/1349016/

相关文章:

  • 深入理解hd-idle日志:如何通过日志优化硬盘休眠策略
  • 宣城装修公司业主评价比较好?真实业主反馈拆解 - GrowthUME
  • Table Transformer实战指南:基于DETR的文档表格提取深度解析
  • G-Helper终极指南:华硕笔记本性能控制的轻量化革命
  • ADR微服务安全:保护分布式AI代理架构的终极指南
  • 告别复杂配置!kubeadm-ha使用Ansible实现Kubernetes自动化安装的完整教程
  • 揭秘自动驾驶制动系统:automated-driving-control校准方案
  • 如何用AI图像扩展工具从单张照片构建完整游戏美术资源
  • Image Extender:5大智能创作模式,一键扩展图像与生成2D游戏美术资源
  • 终极指南:aspire-biencoder-biomed-spec如何彻底改变生物医学文献相似度计算
  • 2026年南充广告设计制作安装|华蔓广告|警示标识,围挡,展架等标识制作一站式服务厂家 - 四川华蔓广告有限公司
  • 从入门到精通:keyring-rs示例程序带你玩转跨平台密钥管理
  • Java3 - 运算符
  • 开启宝塔Nginx防火墙支付返回失败解决方法
  • ViMax:智能体协同的视频创作革命
  • 为什么选择QRibbon?Qt Ribbon菜单栏实现方案对比与选型指南
  • 3步彻底告别Microsoft Edge:EdgeRemover让你完全掌控Windows浏览器
  • 2026年收纳五金品牌哪家** 揭阳市尊越精密制造 - 奔跑123
  • rpy2与Jupyter集成:交互式数据分析环境搭建与应用
  • 霞鹜文楷:为你的数字世界注入优雅灵魂的免费中文字体
  • 如何快速使用Python音乐下载器:新手完整指南
  • 10个Surf使用技巧:让AI代理帮你高效完成虚拟桌面任务
  • DCNv2高级技巧:自定义偏移量(Offset)与掩码(Mask)实现精准特征对齐
  • 2026年超薄铰链公司哪家专业 尊越精密制造值得考虑 - 奔跑123
  • 如何快速构建智能系统:实用多智能体框架指南
  • 2026年08月 切管加工与不锈钢激光切管行业实力制造企业纵深分析 - 卓企推荐
  • 温州市平阳县GEO城市合伙人选型推荐哪家靠谱:本地代理加盟前先看清技术、权益与区域保护 - 小随科技
  • 2026年 b站视频转文字稿哪个好?推荐免费额度够用的靠谱工具
  • Scalastyle实战案例:修复10个常见的Scala代码风格问题
  • KiBot高级应用:使用插件扩展功能,定制专属PCB设计自动化流程