Javascript SyntaxError:意外标记:'['
我用dreamweaver做了一个关于表单的学校项目,它不断地提出 Javascript中缺少分号 我使用firefox作为调试器,下面的代码有错误 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
// 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。这是完整的代码吗?还有其他要求吗:你能把整个错误信息剪切粘贴到你的问题中吗