Может кто-нибудь объяснить мне этот код переключения JavaScript? - PullRequest
0 голосов
/ 05 января 2020

Я не совсем понимаю switch здесь, из того, что я знаю, функция switch должна позволять мне писать определенные случаи, и каждый case должен перенаправлять меня к функции, это пример На слайдах из моего колледжа перечислены 1227, 12345, 123 или пароли, которые пользователь может ввести?

function login() {
    var username = document.myForm.userName.value;
    var password = document.myForm.pass.value;
    if ((username.length == 0) || (password.length == 0)) {
        window.alert("Empty user name or password!");
    } else {
        switch (password) {
            case "12345":
                window.location = "page1.html";
                break;
            case "1234":
                window.location = "page2.html";
                break;
            case "123":
                window.location = "page3.html";
                break;
            default:
                window.alert("Invalid Password");
                document.myForm.pass.select();
        } // end switch case
    }

Ответы [ 2 ]

3 голосов
/ 05 января 2020

Как вы и предлагали, это пароли, которые пользователь может ввести.

Если пользователь вводит «12345», оператор switch будет вводить этот случай, устанавливая window.location в значение page1. html.

«1234» означает, что для window.location будет установлено значение page2. html и т. Д.

Обратите внимание, что если пользователь вводит любое значение, не указанное в регистры переключения («12345», «1234,« 123 »), регистр« по умолчанию »будет активирован, выполняя window.alert(“Invalid Password”);, а также document.myForm.pass.select();

1 голос
/ 05 января 2020

switch (password) означает, что переменная 'password' проверяется в текущем случае переключения.

Так что - в случае, если пароль равен тому, что находится в case - строки кода в этом область видимости будет выполняться до тех пор, пока они не достигнут break.

, например:

var x = 'lala'
switch(x){
  case 'lala':
    foo()
    break;
  case 'lolo':
    bar()
    break;
}

, поэтому foo () будет выполнена.

Надеюсь, это помогло !

...