Javascript和超越基本语法

Javascript和超越基本语法,javascript,html,Javascript,Html,为了更好地理解JavaScript,我最近一直在研究很多源代码中的JavaScript,但对于大多数教程中显示的过去的基本函数和语法,我仍然有困难。我熟悉面向对象编程,但当尝试更“复杂”的东西时,它会崩溃。是否有东西试图在一个函数中执行多个条件?我可以一次做一件事,但这不是最好的。只是想更好地理解vs即时解决方案,请。:) 编写一个JavaScript程序,该程序将显示一个按钮,并要求用户输入一个字符和一个名称。然后,您的程序将把名称放入一个框中,该框由输入的字符组成。 下面演示了当用户输入*和

为了更好地理解JavaScript,我最近一直在研究很多源代码中的JavaScript,但对于大多数教程中显示的过去的基本函数和语法,我仍然有困难。我熟悉面向对象编程,但当尝试更“复杂”的东西时,它会崩溃。是否有东西试图在一个函数中执行多个条件?我可以一次做一件事,但这不是最好的。只是想更好地理解vs即时解决方案,请。:)

编写一个JavaScript程序,该程序将显示一个按钮,并要求用户输入一个字符和一个名称。然后,您的程序将把名称放入一个框中,该框由输入的字符组成。 下面演示了当用户输入*和名称“John”时的测试运行。”


h1{
宽度:300px;
边框:1px纯红;
填充:10px;
利润率:25px;
}
var i=0;
函数名INBORDER(){
对于(i<8){
文件。书写(符号);
我++
}
文档。写入(“
” 符号+符号)+ 文件名(名称+符号+符号); 对于(i<8){ 文件。书写(符号); 我++ } } 函数askName(){ 让name=prompt(“输入您的姓名”); } 函数askSymbol(){ 让symbol=prompt(“键入一个符号以将您的姓名加上边框,如*或#“,”); askName(); nameInBorder(); } 把你的名字放在一个盒子里

代码中的基本Javascript问题
  • 为(i更改
    )使用您提供的代码可以解决很多问题

  • 第19行和第27行的
    for
    循环结构不正确,您使用的是基于
    while
    的结构。因此
    while(i<8)
    将是正确的用法。否则,将
    for
    语句重写为类似于
    for(i=0;i<8;i++){
    ,这也将删除for块末尾的增量

  • 在第23行,连接
    文档时缺少
    +
    。write
    。它应该类似于
    文档。write(“
    ”+symbol+symbol);

  • 在第24行,您正在尝试连接两个
    文档。编写
    函数调用。不可能以这种方式连接,如果您试图在输出的末尾添加新行,您可以简单地添加

    标记,就像之前创建新行一样

  • Scope.Scope.Scope。变量
    name
    symbol
    在其函数体之外不可见。因此,对
    nameInBorder
    的函数调用不知道它们,因为它们在该上下文中不存在。如果要维护现有结构,则必须返回
    name
    askName()

  • 尝试使代码尽可能接近您提供的代码,这样的选择是有效的:

    var i = 0;
    
    function nameInBorder(name, symbol) {
        while (i < 8) {
            document.write(symbol);
            i++;
        }
        document.write("<br>" + symbol + symbol);
        document.write(name + symbol + symbol + "<br>");
    
        i = 0;
        while (i < 8) {
            document.write(symbol);
            i++;
        }
    }
    
    function askName() {
        let name = prompt("Enter your name", "");
        return name;
    }
    
    function askSymbol() {
        let symbol = prompt("Type a symbol to border your name such as * or #", "");
    
        let name = askName();
        nameInBorder(name, symbol);
    }
    
    你的按钮是:

    用于(i<8)
    …for循环是非常基本的javascript…但是你的还没有接近validI。它变得非常烦人。我纠正了它,但感谢你的帮助。是的,我改变了很多,我没有意识到我忘记了将“for”循环改为“while”。*涉及范围,而不是使用“Let”ldn“Var”是否允许在函数外部看到变量?@A-Me-W否,更改变量声明或使用
    Var
    而不是
    let
    在这种情况下不会更改范围(尽管let的范围功能与Var不同),在函数之外可以访问它们的唯一方法是,如果您在函数之外声明它们,这与您对
    i
    所做的操作类似。请参阅:感谢您的帮助。我当时正接近,只需要更耐心。我已经向上面的人问过这个问题,但是。*涉及范围,而不是使用“Let”,难道“Var”不允许在函数外看到变量吗?如果你想在函数外看到变量,你必须在函数外将它们声明为全局变量。就像你对
    Var i=0;
    所做的那样,如果你在函数中声明它们,它们将不会在另一个函数中看到。var和let可以查看如果您还有任何问题,请告诉我:)
    var i = 0;
    
    function nameInBorder() {
        let name = askName();
        let symbol = askSymbol();
        while (i < 8) {
            document.write(symbol);
            i++;
        }
        document.write("<br>" + symbol + symbol);
        document.write(name + symbol + symbol + "<br>");
    
        i = 0;
        while (i < 8) {
            document.write(symbol);
            i++;
        }
    }
    
    function askName() {
        return prompt("Enter your name", "");
    }
    
    function askSymbol() {
        return prompt("Type a symbol to border your name such as * or #", "");
    }