目录导航
1 -> 数据类型基础
1.1 -> 流程控制语句
1.1.1 条件判断
1.2 -> 选择结构
1.2.1 -> 多路分支
1.3 -> 迭代语句
1.3.1 -> 条件循环
1.3.2 -> 跳过当前
1.3.3 -> 终止循环
1.3.4 -> 计数循环
1.4 -> 集合类型
1.4.1 -> 初始化数组
1.4.2 -> 访问元素
1.4.3 -> 添加元素
1.4.4 -> 移除元素
2 -> 功能模块
2.1 -> 定义规范
2.2 -> 参数处理
2.3 -> 匿名函数
3 -> 变量范围
4 -> 嵌套作用域
5 -> 复合数据类型
5.1 -> 基本定义
5.2 -> 直接量创建
5.3 -> 实例化创建
5.4 -> 构造器创建
5.5 -> 实例化原理
6 -> JS与Java对象差异
1 -> 数据类型基础
1.1 -> 流程控制语句
1.1.1 条件判断
语法规范
当判定条件成立时,执行对应代码块。
// 单分支
if (判定条件) {
执行语句
}// 双分支
if (条件) {
代码块1
} else {
代码块2
}// 多分支
if (条件1) {
逻辑1
} else if (条件2) {
逻辑2
}
...
else {
默认逻辑
}
实践案例
示例1: 判断数值奇偶性
let number = 15;
if (number % 2 === 0) {
console.log("偶数");
} else {
console.log("奇数");
}
注意点:
负数取模运算可能得到-1,建议使用绝对判定。
示例2: 数值符号判断
let value = -5;
if (value > 0) {
console.log("正数");
} else if (value < 0) {
console.log("负数");
} else {
console.log("零值");
}
1.2 -> 选择结构
1.2.1 -> 多路分支
适用于多条件场景。
switch (表达式) {
case 匹配值1:
执行语句1;
break;
case 匹配值2:
执行语句2;
break;
default:
默认处理;
}
实践案例
示例: 星期查询系统
let day = Number(prompt("输入星期数字:"));
switch(day) {
case 1: console.log("周一"); break;
case 2: console.log("周二"); break;
// ...其他星期
default: console.log("无效输入");
}
1.3 -> 迭代语句
1.3.1 -> 条件循环
while (循环条件) {
循环体代码
}
执行流程:
1. 检查条件表达式
2. 条件成立则执行循环体
3. 重复上述过程
示例: 数字递增输出
let counter = 1;
while (counter <= 10) {
console.log(counter++);
}
1.3.4 -> 计数循环
for (初始化; 条件; 更新) {
循环主体
}
执行顺序:
1. 初始化循环变量
2. 验证循环条件
3. 执行循环体
4. 更新循环变量
示例: 范围数字打印
for (let i = 1; i <= 10; i++) {
console.log(i);
}
2 -> 功能模块
2.1 -> 定义规范
function 方法名(参数列表) {
方法体
return 结果;
}
调用方式:
方法名(实际参数); // 无返回值调用
let result = 方法名(参数); // 获取返回值
特性说明:
- 函数需调用才执行
- 支持先调用后定义
- 可通过调试器跟踪执行流程
5 -> 复合数据类型
5.2 -> 直接量创建
let hero = {
name: '蒙奇·D·路飞',
crew: '草帽海贼团',
greet: function() {
console.log("我要成为海贼王!");
}
};
访问方式:
console.log(hero.name); // 点语法
console.log(hero['crew']); // 方括号语法
hero.greet(); // 方法调用
5.4 -> 构造器创建
构造函数示例:
function Pirate(name, bounty) {
this.name = name;
this.bounty = bounty;
this.introduce = function() {
console.log(`我是${name}, 悬赏${bounty}贝利`);
}
}
let luffy = new Pirate('路飞', 3000000000);
let zoro = new Pirate('索隆', 1110000000);
6 -> JS与Java对象差异
核心区别:
1. 无严格类概念
2. 属性方法无严格区分
3. 缺乏访问控制修饰符
4. 通过原型链实现继承
5. 动态类型天然支持多态
原型链示例:
let animal = { eat: function() { console.log("进食中") } };
let cat = { __proto__: animal };
cat.eat(); // 调用原型方法
感谢各位开发者支持!欢迎互动交流!