我将Dreamweaver用于表单上的学校项目,并且不断提出 Javascript中的“Missing Semicolon”。
我使用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;
由于
答案 0 :(得分:1)
您可以使用以下方式分配数组和对象,例如
var Crust_Price = new Array();
因为如果要在其中分配属性,则声明了一个数组 你只需要做
Crust_Price[0]=13;
否则您要创建一个可分配键值值的对象 所以你可以声明一个这样的对象
var Crust_Price = new Object();
现在你可以像这样分配一个属性
Crust_Price["Deep_Pan"]=13;
Crust_Price ["&Thin_放大器; _Crispy"] = 13;
或者您可以直接创建像
这样的对象var Crust_Price = {};
现在分配一个像这样的属性
Crust_Price["Stuffed_Crust"]=16;
希望你能以更好的方式理解。
答案 1 :(得分:0)
此错误:
错误说"语法错误:意外令牌:' ['"
特别是由于在数组名称和开口方括号之间有一个空格:
<强>错误:强>
Crust_Price [...];
<强>正确强>
Crust_Price[...]
但这只是第一个问题。您遇到的下一个问题是重新声明每个数组名称:
<强>错误强>
var Wing_Price = new Array();
var Wing_Price ["Seasoned_Wings_18PK"]=19.95;
var Wing_Price ["Naked_Wings_18PK"]=19.95;
<强>正确强>
var Wing_Price = new Array();
Wing_Price["Seasoned_Wings_18PK"]=19.95;
Wing_Price["Naked_Wings_18PK"]=19.95;
请找到以下工作代码:
var Pizza=document.forms["Pizzaform"];
var Crust_Price = [];
Crust_Price["Traditional"]=13;
Crust_Price["Deep_Pan"]=13;
Crust_Price["Thin_&_Crispy"]=13;
Crust_Price["Stuffed_Crust"]=16;
Crust_Price["Glutten_Free_Base"]=16;
///////////////////////////////////////////////////////////
var Mozzarella_Price = [];
Mozzarella_Price["Extra"]=2;
///////////////////////////////////////////////////////////
var Wing_Price = []
Wing_Price["Seasoned_Wings_18PK"]=19.95;
Wing_Price["Naked_Wings_18PK"]=19.95;
Wing_Price["Seasoned_Wings_10PK"]=11.95;
Wing_Price["Naked_Wings_10PK"]=11.95;
Wing_Price["Seasoned_Wings_6PK"]=7.95;
Wing_Price["Naked_Wings_6PK"]=7.95;
///////////////////////////////////////////////////////////
var Drink_Price = [];
Drink_Price ["Pepsi"]=4.95;
Drink_Price ["Pepsi_Max"]=4.95;
Drink_Price ["7_Up"]=4.95;
&#13;
答案 2 :(得分:0)
您收到SyntaxError
,因为您的代码中的某些语法不是有效的JavaScript。
这样的一行有效:
const letters = ['h', 'i'];
这样的一行有效:
letters[0] = 'h';
这样的一行不有效:
const letters[0] = 'h';
为什么最后的例子无效?好吧,letters[0]
引用letters
对象上名为“0”的属性。您可以分配属性(如第二个示例中所示),但不能声明属性。换句话说,您不能在属性之前使用var
,let
或const
。创建或更新属性所需要做的就是为其赋值。
您的代码还存在其他问题。您正在使用数组,但不使用索引。数组用于有序数据列表。您的数据似乎是命名和无序的,因此您最好使用普通的旧对象而不是数组。
例如,您可以执行以下操作:
const crustPrice = {
traditional : 13,
deepPan : 13,
thinCrispy : 13;
stuffedCrust : 16;
gluttenFreeBase : 16;
};
然后,要使用其中一个属性的值,我们可以执行以下操作:
console.log(crustPrice.thinCrispy);