Javascript SyntaxError:意外标记:'['

Javascript SyntaxError:意外标记:'[',javascript,html,Javascript,Html,我用dreamweaver做了一个关于表单的学校项目,它不断地提出 Javascript中缺少分号 我使用firefox作为调试器,下面的代码有错误 SyntaxError:意外标记:'[' 以下是我遇到问题的代码: // JavaScript Document var Pizza=document.forms["Pizzaform"]; var Crust_Price = new Array(); **var Crust_Price ["Traditional"]=13; var Crust

我用dreamweaver做了一个关于表单的学校项目,它不断地提出 Javascript中缺少分号

我使用firefox作为调试器,下面的代码有错误 SyntaxError:意外标记:'['

以下是我遇到问题的代码:

// JavaScript Document

var Pizza=document.forms["Pizzaform"];
var Crust_Price = new Array();
**var Crust_Price ["Traditional"]=13;
var Crust_Price ["Deep_Pan"]=13;
var Crust_Price ["Thin_&_Crispy"]=13;
var Crust_Price ["Stuffed_Crust"]=16;
var Crust_Price ["Glutten_Free_Base"]=16;
///////////////////////////////////////////////////////////
var Mozzarella_Price = new Array();
var Mozzarella_Price ["Extra"]=2;
///////////////////////////////////////////////////////////
var Wing_Price = new Array();
var Wing_Price ["Seasoned_Wings_18PK"]=19.95;
var Wing_Price ["Naked_Wings_18PK"]=19.95;
var Wing_Price ["Seasoned_Wings_10PK"]=11.95;
var Wing_Price ["Naked_Wings_10PK"]=11.95;
var Wing_Price ["Seasoned_Wings_6PK"]=7.95;
var Wing_Price ["Naked_Wings_6PK"]=7.95;
///////////////////////////////////////////////////////////
var Drink_Price = new Array();
var Drink_Price ["Pepsi"]=4.95;
var Drink_Price ["Pepsi_Max"]=4.95;
var Drink_Price ["7_Up"]=4.95;

感谢您使用以下方法分配数组和对象,例如

var Crust_Price = new Array();
如果要在数组中指定属性,则必须声明数组 你只需要做

Crust_Price[0]=13;
否则,您希望创建一个键值pare可赋值的对象 所以你可以像这样声明一个对象

var Crust_Price = new Object();
Crust_Price["Deep_Pan"]=13;
Crust_Price["Stuffed_Crust"]=16;
现在你可以像这样分配一个属性

var Crust_Price = new Object();
Crust_Price["Deep_Pan"]=13;
Crust_Price["Stuffed_Crust"]=16;
果皮价格[薄脆]=13

或者您可以直接创建一个对象,如

var Crust_Price = {};
现在分配一个这样的属性

var Crust_Price = new Object();
Crust_Price["Deep_Pan"]=13;
Crust_Price["Stuffed_Crust"]=16;
希望您能更好地理解。

此错误:

错误为SyntaxError:意外标记:'['

是由于数组名称和开口方括号之间有空格造成的:

错:

正确的

但这只是第一个问题。您将遇到的下一个问题是重新声明每个数组名称:

正确的

请在下面查找工作代码: var Pizza=document.forms[Pizzaform]; var_价格=[]; 外壳价格[传统]=13; 地壳价格[深盘]=13; 果皮价格[薄脆]=13; 外壳价格[填充外壳]=16; 结壳价格[结壳自由基]=16; /////////////////////////////////////////////////////////// var Mozzarella_价格=[]; 莫扎里拉干酪价格[额外]=2; /////////////////////////////////////////////////////////// var Wing_价格=[] 鸡翅价格[调味鸡翅18PK]=19.95; 机翼价格[裸机翼18PK]=19.95; 翅价格[调味翅10PK]=11.95; 机翼价格[裸机翼10PK]=11.95; 翅价格[调味翅6PK]=7.95; 机翼价格[裸机翼6PK]=7.95; /////////////////////////////////////////////////////////// var价格=[]; 饮料价格[百事可乐]=4.95; 饮料价格[Pepsi_Max]=4.95; 因为代码中的某些语法不是有效的JavaScript,所以您收到了一个语法错误

这样的行是有效的:

const letters = ['h', 'i'];
letters[0] = 'h';
这样的行是有效的:

const letters = ['h', 'i'];
letters[0] = 'h';
这样的行无效:

为什么最后一个例子无效?好吧,字母[0]引用letters对象上名为0的属性。您可以如第二个示例所示分配给属性,但不能声明属性。换句话说,您不能在属性之前使用var、let或const。创建或更新属性所需的全部操作是为其分配值

您的代码还有其他问题。您使用的是数组,而不是索引。数组用于有序数据的列表。您的数据似乎已命名且无序,因此最好使用普通的旧对象,而不是数组

例如,您可以执行以下操作:

const crustPrice = {
    traditional     : 13,
    deepPan         : 13,
    thinCrispy      : 13;
    stuffedCrust    : 16;
    gluttenFreeBase : 16;
};
console.log(crustPrice.thinCrispy);
然后,要使用其中一个属性的值,我们可以执行以下操作:

const crustPrice = {
    traditional     : 13,
    deepPan         : 13,
    thinCrispy      : 13;
    stuffedCrust    : 16;
    gluttenFreeBase : 16;
};
console.log(crustPrice.thinCrispy);

您不能声明对象属性。此外,不建议向数组添加自定义属性。JS中没有关联数组,对象和带有数字索引的数组是不同的。最简单的更改…var-craster\u-Price=新数组;var-craster\u-Price[传统]=13;=>var-craster\u-Price={};地壳价格。传统=13;etc更好的变化var地壳价格={传统:13,深盘:13-但实际上,这是Javascript 101stuff@JaromandaX谢谢你的帮助。我是Javascript的高手,因为这是我第一次这么做。我不认为空间问题是一个问题,因为这只发生在代码的前24行。24行之后,它工作正常。我知道我是个高手,所以请不要欺负我。我改变了大部分的t他提到了你提到的东西,但它仍然说缺少分号,我显然有,所以我很困惑。这一切都很好。我是来帮助你的。当它说缺少分号时,应该表明代码中的哪一行被怀疑是导致问题的原因。还有两个问题。1。你能用你使用的新代码更新你的问题吗?2。这是完整的代码吗?还有其他要求吗:你能把整个错误信息剪切粘贴到你的问题中吗