Javascript代码坏了

时间:2014-04-30 16:46:01

标签: javascript jquery debugging ide

这是我第一次尝试更复杂的代码结构。问题是我的IDE说它在技术上有用,jsfiddle说没有,它实际上只初始化了我声明为“ confirmUserName(); ”和“ confirmUserName(); ”的两个确认函数 confirmFullName();

有人可以解释为什么我做了这么糟糕的工作。

var userList = [];  
var username = "";   
var fullname = ""; 
var addUserName = addUser(username, userList);        v
var addFullName = addUser(fullname, userList); 
function addUser(usrName, list) {
    if(list.length == 0) {
        list.push(usrName); // userlist empty add the new user
    } else {
        for (var i = 0; i < list.length; i++) {   
            if(list[i] == undefined) {            
                list[i] = usrName;              
                return list;                     
            } else if(i == list.length - 1) {    
                list.push(usrName);             
                return list;                   

            }
        }
    }
}            // Function that adds user and name to list

var usernameQuery;                                  
function confirmUserName() {
   confirm("Is " + username + " your first choice?");

    if (confirmUserName == true) {
        return fullnameQuery;
    } else {
        return usernameQuery;
    }
}                   
var fullnameQuery;                                   /
function fullnameConfirm() {
    confirm("Is " + fullname + " your first choice ");
    if (fullnameConfirm == true) {
        return  startRide;
    } else {
        return fullnameQuery;
    }
}                   
if(username == undefined) {
    usernameQuery = function() {
      username =  prompt("You are the first user to play, \n" +
               " Chose and let the game begin !");
      return addUserName;
    };
} else {
    usernameQuery = function() {
        username = prompt("What username whould you like to have ? \n" +
            " Chose and let the game begin !");
        return addUserName;
    };
}
confirmUserName();
if(fullname == undefined)  {
    fullnameQuery = function() {
        fullname = prompt("Enter your real name !");
        return addFullName;
    };

    } else {
    fullnameQuery = function() {
        fullname = prompt("Enter your real name!");
    return addFullName;

    };
}
fullnameConfirm();

2 个答案:

答案 0 :(得分:1)

你发布的代码有很多问题 - 我只拿一个块:

function confirmUserName() {
   // The return value of `confirm` is ignored.
   confirm("Is " + username + " your first choice?");

    // confirmUserName is the name of your function.
    // You sould be using `===` instead of `==`
    // Or, not comparing against true at all.
    if (confirmUserName == true) {
        return fullnameQuery;
    } else {
        return usernameQuery;
    }
}   

固定功能:

function confirmUserName() {
   var res = confirm("Is " + username + " your first choice?");
    if (res) {
        return fullnameQuery;
    } else {
        return usernameQuery;
    }
}

答案 1 :(得分:0)

它没有抛出错误,但我不知道你希望你的代码在哪种情况下实现以及它应该做什么,我希望这是你需要的:

var userList = [];
var username = "";
var fullname = "";
var addUserName = addUser(username, userList);

var addFullName = addUser(fullname, userList);

function addUser(usrName, list) {
    if (list.length === 0) {
        list.push(usrName); // userlist empty add the new user
    } else {
        for (var i = 0; i < list.length; i++) {
            if (list[i] === undefined) {
                list[i] = usrName;
                return list;
            } else if (i == list.length - 1) {
                list.push(usrName);
                return list;

            }
        }
    }
} // Function that adds user and name to list

var usernameQuery;

function confirmUserName() {
    confirm("Is " + username + " your first choice?");

    if (confirmUserName === true) {
        return fullnameQuery;
    } else {
        return usernameQuery;
    }
}
var fullnameQuery;

function fullnameConfirm() {
    confirm("Is " + fullname + " your first choice ");
    if (fullnameConfirm === true) {
        return startRide;
    } else {
        return fullnameQuery;
    }
}
if (username === undefined) {
    usernameQuery = function () {
        username = prompt("You are the first user to play, \n" +
            " Chose and let the game begin !");
        return addUserName;
    };
} else {
    usernameQuery = function () {
        username = prompt("What username whould you like to have ? \n" +
            " Chose and let the game begin !");
        return addUserName;
    };
}
confirmUserName();
if (fullname === undefined) {
    fullnameQuery = function () {
        fullname = prompt("Enter your real name !");
        return addFullName;
    };

} else {
    fullnameQuery = function () {
        fullname = prompt("Enter your real name!");
        return addFullName;

    };
}
fullnameConfirm();