Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 即使在调试之后也不会运行的简短Java脚本代码_Javascript - Fatal编程技术网

Javascript 即使在调试之后也不会运行的简短Java脚本代码

Javascript 即使在调试之后也不会运行的简短Java脚本代码,javascript,Javascript,我一直在做这个作业,把伪代码转换成java脚本 我确信我的操作是正确的,但当我尝试执行它时,我只得到一个空白的白色屏幕 我把它放到沙箱中,并设法纠正了大多数可能使它无法运行的语法错误,但它仍然拒绝工作或显示任何内容 我仍在学习,我不知道如果没有沙箱来帮助调试代码,我会做什么,但当它找不到任何进一步的东西时,我会被卡住 对于一个完全的新手,有什么关于调试java脚本代码的建议吗 代码如下: <html> <body> <script type="text/javasc

我一直在做这个作业,把伪代码转换成java脚本

我确信我的操作是正确的,但当我尝试执行它时,我只得到一个空白的白色屏幕

我把它放到沙箱中,并设法纠正了大多数可能使它无法运行的语法错误,但它仍然拒绝工作或显示任何内容

我仍在学习,我不知道如果没有沙箱来帮助调试代码,我会做什么,但当它找不到任何进一步的东西时,我会被卡住

对于一个完全的新手,有什么关于调试java脚本代码的建议吗

代码如下:

<html>
<body>
<script type="text/javascript">

// Declare variables
var username;           // potential username entered by user
var char1;              // one character extracted from username
var anyDigits = False;  // variable to signify presence of digits
var index;              // loop variable for extracting characters
var BR = "<br />";
var ES = "";

// Display program heading and requirements and ask for username
document.write("This program helps you set up a valid username." + BR);
document.write("Your username must be at least 8 characters long," + BR);
document.write("   start with a letter, and contain at least 1 digit." + BR);
username = prompt("Please enter your name: ", ES);

// Check for length of username
while (username.length < 8) {
    document.write("ERROR...your username must be at least 8 characters long." + BR);
    username = prompt("Please enter your new username: ", ES);
}

// Check that first character is a letter
// Substring function has three arguments: string, starting position, and ending position
char1 = username.substr(0, 0);
while (char1 !== isLetter()) {
    document.write("ERROR: the first character of your username must be a letter." + BR);
    username = prompt("Please enter your new username: ", ES);
}

// Check that there's at least one digit in the username
while (anyDigits !== True) {
    // Check each character, set anyDigits to true if a digit
    for (index = 1; index < username.substr(index, index); index++) {
        char1 = username.substr(index, index);
        if (isNumeric(char1)) {
            anyDigits = True;
        }
    }

// If anyDigits is still false, no digits were present
    if (anyDigits !== True) {
        document.write("ERROR:...your username must include at least 1 digit." + BR);
        username = prompt("Please enter your new username: ", ES);
    }
}

// Thank the user and end the program
document.write("Thank you! Your new username is: " + username);

</script>
</body>
</html>

//声明变量
var用户名;//用户输入的潜在用户名
var char1;//从用户名中提取一个字符
var anyDigits=False;//表示数字存在的变量
var指数;//用于提取字符的循环变量
var BR=“
”; var ES=“”; //显示程序标题和要求,并询问用户名 编写(“此程序帮助您设置有效的用户名。”+BR); document.write(“您的用户名长度必须至少为8个字符,”+BR); 文件。书写(“以字母开头,至少包含1位数字。”+BR); 用户名=提示(“请输入您的姓名:”,ES); //检查用户名的长度 while(username.length<8){ document.write(“错误……您的用户名长度必须至少为8个字符。”+BR); 用户名=提示(“请输入您的新用户名:”,ES); } //检查第一个字符是否为字母 //子字符串函数有三个参数:字符串、起始位置和结束位置 char1=username.substr(0,0); while(char1!==isleter()){ document.write(“错误:用户名的第一个字符必须是字母。”+BR); 用户名=提示(“请输入您的新用户名:”,ES); } //检查用户名中是否至少有一位数字 while(anyDigits!==True){ //检查每个字符,如果是数字,则将anyDigits设置为true for(index=1;index
true和false区分大小写

变真为真 从假到假

您也可以使用类似firebug(firefox的插件)或chrome的调试器,只需按F12键即可调试器。对于上述情况,控制台中肯定会出现错误

javascript中没有称为isNumeric()或isleter()的函数。你可以试试这个

if(isNaN(parseInt(char1))) 
{
    //it is a string  
}
else
{
    //it is a number
}

什么是
isleter
函数?什么沙箱?你所说的“调试”是什么意思?你是否真的使用调试器运行它,以查看它从何处开始执行意外操作?你不能像在浏览器中那样使用
document.write()
prompt()
;用户在查看对话框时将无法看到
document.write()
输出。通常,当脚本完成执行时,浏览器将显示所有DOM更改(包括添加文本)的图形。进行交互的正确方法是创建用户可以与之交互的元素(例如
元素),并在其上放置事件处理程序。另外,通常避免
alert()
prompt()
,因为如果您有错误并导致无限循环,则很难转义。如果字符串中的所有字符都是字母表中的字母,isLetter将返回True。Sandbox是一个可以复制代码的地方,它将运行/分析代码(danml.com/Sandbox/)。关于document.write()和提示符,我只是按照书中的说明进行操作。它一直在为我练习过的其他代码工作,但不是这一个。谢谢你的回复!MikeI将它们改为小写,现在它执行并向我显示一个提示框,但在我输入任何内容后,它就会锁定。浏览器选项卡上有一条消息:“ERROR the isLetter()未定义”。不确定是否使用了错误的语法形式或其他形式。使用Firebug确认isleter未定义。我将Islander()的行修改如下,但没有成功:而(!(Islander(char1)){也刚刚实现了isNumeric()我正在使用的函数也被报告为未定义。这两个命令/函数是否未包含在Java脚本中?这本书让它听起来像是。感谢更新的建议!我似乎对这段代码有其他潜在问题。例如,char1=username.substr(0,0)不会导致键入用户名的第一个字母。我现在已经设置为在测试执行期间显示char1值,但它总是返回为空,就像它没有读取用户名值或语法不正确一样。子字符串语法是basic,string.substr(start,length)这就是我所拥有的,虽然“字符串”被“用户名”所取代。我到底做错了什么?我发现了substr()的问题,我需要将最后一个参数0改为1。