在学习js过程中,想通过Switch语句对进行字符串方法的测试,结果出现了undefined的情况。
在查询资料后了解到Switch语句中case的判断是“===”等值等型的判断,所以猜测是input 框输入的是数字但实际上value获取的是String类型的数值,而case 数值用错了。
更改case值后,试验成功。
下面为踩坑的代码:
function Stirngways() {
var x = document.getElementById("Stringdemo");
var y = document.getElementById("text");
var string = document.getElementById("stringtext").value;
const a = y.value;
/* if (a === "1") {
console.log("You find it!");
} */
switch (a) {
case 1:
var z = string.indexOf("a");
console.log(a);
break;
case 2:
var z = string.slice(0, 5);
console.log(a);
break;
};
x.innerHTML = z;
}
关键在于case的改变:
switch (a) {
case "1":
var z = string.indexOf("a");
console.log(a);
x.innerHTML = z;
break;
case "2":
var z = string.slice(0, 5);
x.innerHTML = z;
console.log(a);
break;
};