转换
试试看
const expr=“木瓜”; 开关(expr){ “橙子”案例: log(“橙子每磅0.59美元。”); 断裂; 案例“芒果”: “木瓜”案例: log(“芒果和木瓜每磅2.79美元。”); //预期产量:“芒果和木瓜每磅2.79美元。” 断裂; 违约: console.log(`抱歉,${expr}.`已用完); }
语法
描述
开关(未定义){ 案例控制台.log(1): 案例控制台.log(2): } //仅日志1
突破和突破
常量foo=0; 交换机(foo){ 案例-1: console.log(“负1”); 断裂; case 0://foo的值符合此条件; 执行从这里开始 console.log(0); //忘记休息了! 执行失败 case 1://“case 0:”中没有break语句,因此此案例也将运行 console.log(1); 断裂; //遇到中断; 不会继续到“案例2:” 案例2: console.log(2); 断裂; 违约: console.log(“默认”); } //日志0和1
词汇范围
const动作=“say_hello”; 开关(动作){ 案例“say_hello”: const消息=“hello”; console.log(消息); 断裂; 案例“say_hi”: const消息=“hi”; console.log(消息); 断裂; 违约: console.log(“接收到空操作。”); }
const动作=“say_hello”; 开关(动作){ 案例“say_hello”:{ const消息=“hello”; console.log(消息); 断裂; } 案例“say_hi”:{ const消息=“hi”; console.log(消息); 断裂; } 默认值:{ console.log(“接收到空操作。”); } }
示例
使用交换机
开关(expr){ “橙子”案例: log(“橙子每磅0.59美元。”); 断裂; “苹果”案例: log(“苹果每磅0.32美元。”); 断裂; “香蕉”盒: log(“香蕉每磅0.48美元。”); 断裂; “樱桃”案例: log(“樱桃每磅3.00美元。”); 断裂; 案例“芒果”: 案例“木瓜”: log(“芒果和木瓜每磅2.79美元。”); 断裂; 违约: console.log(`抱歉,${expr}.`已用完); } log(“您还想要什么吗?”);
将default子句置于两个case子句之间
常数foo=5; 交换机(foo){ 案例2: console.log(2); 断裂; //它遇到此中断,因此不会继续进入“default:” 违约: console.log(“默认”); //故障排除 案例1: console.log(“1”); }
利用故障排除
const Animal=“长颈鹿”; 开关(动物){ 案例“Cow”: 案例“长颈鹿”: 案例“Dog”: 案例“Pig”: log(“这种动物没有灭绝。”); 断裂; “恐龙”案例: 违约: log(“这种动物已经灭绝了。”); }
常数foo=1; let output=“output:”; 交换机(foo){ 案例0: 输出+=“So”; 案例1: 输出+=“什么”; 输出+=“是”; 案例2: output+=“您的”; 情况3: output+=“名称”; 案例4: 输出+=“?”; console.log(输出); 断裂; 案例5: 输出+=“!”; console.log(输出); 断裂; 违约: console.log(“请选择0到5之间的数字!”); }
|
|
|
|
|
|
|
|
|
|
|
|
|
替代if…else链
if(globalThis中的“fetch”){ //使用Fetch获取资源 }else if(globalThis中的“XMLHttpRequest”){ //使用XMLHttpRequest获取资源 }其他{ //使用一些自定义AJAX逻辑获取资源 }
开关(真){ global中的case“fetch”This: //使用Fetch获取资源 断裂; globalThis中的case“XMLHttpRequest”: //使用XMLHttpRequest获取资源 断裂; 违约: //使用一些自定义AJAX逻辑获取资源 断裂; }
开关(真){ 外壳为方形(形状): log(“这个形状是一个正方形。”); //简单,因为正方形也是矩形! 外壳为矩形(形状): log(“这个形状是一个矩形。”); 外壳为四边形(形状): log(“这个形状是四边形。”); 断裂; 外壳为圆形(形状): log(“这个形状是一个圆。”); 断裂; }