如何在JavaScript中使用switch
我一直在尝试做一个密码生成器,我有这个代码,它返回的是“未定义”而不是一个字符。代码应该返回16个字符,包括数字、小写和大写字符。我想要这个,这样我就不必再担心自己的密码了如何在JavaScript中使用switch,javascript,switch-statement,Javascript,Switch Statement,我一直在尝试做一个密码生成器,我有这个代码,它返回的是“未定义”而不是一个字符。代码应该返回16个字符,包括数字、小写和大写字符。我想要这个,这样我就不必再担心自己的密码了 帕斯根 函数getRandomInt(最小值、最大值){ 返回Math.floor(Math.random()*(max-min+1))+min; } 函数num2lett(num){ 开关(num){ 案例(数量>36): 返回字符串.fromCharCode(577+num-35); 打破 案例(数值>10&&num
帕斯根
函数getRandomInt(最小值、最大值){
返回Math.floor(Math.random()*(max-min+1))+min;
}
函数num2lett(num){
开关(num){
案例(数量>36):
返回字符串.fromCharCode(577+num-35);
打破
案例(数值>10&&num<37):
返回字符串.fromCharCode(97+num-11);
打破
案例(num==10):
返回“0”;
打破
病例(数量<10):
返回“”+num;
打破
}
}
函数uuidMake(){
var uuid=“”;
对于(u=0;u<16;u++){
randNum=getRandomInt(0,62);
uuid+=num2lett(randNum);
}
document.getElementById(“密码”).innerHTML=uuid;
}
@字体{
字体系列:“uuid_字体”;
src:url(“Courier Prime Code.ttf”)格式(“TrueType”);
}
身体{
背景色:#262626;
}
#密码{
字体系列:“uuid_字体”;
文本对齐:居中;
字体大小:30px;
颜色:#dddddd;
边缘顶部:250px;
}
单击我
您不能像if-else那样使用case语句,所以只需使用if-else条件,其工作方式如下例所示
函数getRandomInt(最小值、最大值){
返回Math.floor(Math.random()*(max-min+1))+min;
}
函数num2lett(num){
如果(数值>36)
返回字符串.fromCharCode(577+num-35);
否则如果(数值>10&&num<37)
返回字符串.fromCharCode(97+num-11);
else if(num==10)
返回“0”;
否则如果(数值<10)
返回“”+num;
}
函数uuidMake(){
var uuid=“”;
对于(u=0;u<16;u++){
randNum=getRandomInt(0,62);
uuid+=num2lett(randNum);
}
document.getElementById(“密码”).innerHTML=uuid;
}
@font-face{
字体系列:“uuid_字体”;
src:url(“Courier Prime Code.ttf”)格式(“TrueType”);
}
身体{
背景色:#262626;
}
#密码{
字体系列:“uuid_字体”;
文本对齐:居中;
字体大小:30px;
颜色:#dddddd;
边缘顶部:250px;
}
单击我
您不能像if-else那样使用case语句,所以只需使用if-else条件,其工作方式如下例所示
函数getRandomInt(最小值、最大值){
返回Math.floor(Math.random()*(max-min+1))+min;
}
函数num2lett(num){
如果(数值>36)
返回字符串.fromCharCode(577+num-35);
否则如果(数值>10&&num<37)
返回字符串.fromCharCode(97+num-11);
else if(num==10)
返回“0”;
否则如果(数值<10)
返回“”+num;
}
函数uuidMake(){
var uuid=“”;
对于(u=0;u<16;u++){
randNum=getRandomInt(0,62);
uuid+=num2lett(randNum);
}
document.getElementById(“密码”).innerHTML=uuid;
}
@font-face{
字体系列:“uuid_字体”;
src:url(“Courier Prime Code.ttf”)格式(“TrueType”);
}
身体{
背景色:#262626;
}
#密码{
字体系列:“uuid_字体”;
文本对齐:居中;
字体大小:30px;
颜色:#dddddd;
边缘顶部:250px;
}
单击我
在开关
块中,您已经在案例中写入了条件语句
不能在开关
块中使用条件语句。因此,在您的案例中,案例
都没有执行。由于没有默认
块,因此函数不会返回任何内容,在javascript中,这是未定义的
。因此,您在开关
块中得到了未定义的
,您已经在案例
中编写了条件语句
不能在开关
块中使用条件语句。因此,在您的案例中,案例
都没有执行。由于没有默认
块,因此函数不会返回任何内容,在javascript中,这是未定义的
。因此,您将获得未定义的
这不是开关的好用例。使用if
和else
语句
switch
语句中的case
s是要打开的表达式的特定可能值。例如,可以编写如下内容:
switch (n) {
case 1:
// things to do when n is 1
break;
case 3:
case 4:
// things to do when n is 3 or 4
break;
default:
// things to do when n is neither 1, 3, nor 4
}
case
语句不能是值的范围。也不建议将表达式用作案例
,它不是无效的,但可能也不会达到预期效果。这不是开关
的好用例。使用if
和else
语句
switch
语句中的case
s是要打开的表达式的特定可能值。例如,可以编写如下内容:
switch (n) {
case 1:
// things to do when n is 1
break;
case 3:
case 4:
// things to do when n is 3 or 4
break;
default:
// things to do when n is neither 1, 3, nor 4
}
case
语句不能是值的范围。也不建议将表达式用作大小写,因为它不是无效的,但它可能也不会达到您的预期效果。您可以更改switch语句使其工作。在开关中传递“true”,并从case条件中删除括号
switch (true) {
case num > 36:
您可以修改switch语句使其工作。在开关中传递“true”,并从case条件中删除括号
switch (true) {
case num > 36:
大部分都是有效的,不过我有点担心大写字母,有没有办法解决这个问题?我认为是577(unicode)首先将这一行if条件替换为这一行if(num>36)返回String.fromCharCode(65+num-35);这大部分是有效的,不过我有点担心大写字母,一个