环境: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);