[英]Uncaught SyntaxError: Unexpected number
解決方案 :我意識到當前的測試環境區域設置已設置為土耳其語,並且使用逗號表示小數點符號。 在我的本地語言中,它設置為UK,這就是該代碼在我的本地語言中起作用而在測試中不起作用的原因。 我想我會先用點替換所有逗號。 感謝所有的答復。
我正在嘗試使用以下數據填充條形圖:
var oneToTen = [0,1,2,3,4,5,6,7,8,9,10];
var ticks = [[0, 'Atmosfer'],[1, 'Servis'],[2, 'Yemeklerimiz']];
var labels = ['Atmosfer','Servis','Yemeklerimiz'];
var mainQuest_d1 = 8,16666666666667;
var mainQuest_d2 = 7,95833333333333;
var mainQuest_d3 = 8,125;
var d_main_quest_bar = [[0, 8,16666666666667],[1, 7,95833333333333],[2, 8,125]];
我收到此錯誤:
未捕獲的語法錯誤:意外的數字
我看不到上面的代碼有什么問題。 它在localhost中可以正常工作,但是當我將其發布到測試服務器時,會出現此錯誤。
Razor尚未渲染的完整代碼:
int i = 0;
int j = 0;
int m = 0;
@Html.Raw("var oneToTen = [0,1,2,3,4,5,6,7,8,9,10];");
@Html.Raw("var ticks = [");
if (Model.MainQuestionsRatingList != null)
{
foreach (var item in Model.MainQuestionsRatingList)
{
j++;
@Html.Raw("["+(j-1)+", '"+item.QuestionText+"']")
if (j != Model.MainQuestionsRatingList.Count) { @Html.Raw(","); }
}
}
@Html.Raw("];");
@Html.Raw("var labels = [");
if (Model.MainQuestionsRatingList != null)
{
foreach (var item in Model.MainQuestionsRatingList)
{
m++;
@Html.Raw("'"+item.QuestionText+"'")
if (m != Model.MainQuestionsRatingList.Count) { @Html.Raw(","); }
}
}
@Html.Raw("];");
if (Model.MainQuestionsRatingList != null)
{
foreach (var item in Model.MainQuestionsRatingList)
{
i++;
@Html.Raw("var mainQuest_d" + i + " = " + item.Avg + ";");
}
}
i = 0;
@Html.Raw("var d_main_quest_bar = [");
if (Model.MainQuestionsRatingList != null)
{
foreach (var item in Model.MainQuestionsRatingList)
{
i++;
@Html.Raw("[" + (i-1) + ", "+item.Avg+"]");
if (i != Model.MainQuestionsRatingList.Count) { @Html.Raw(","); }
}
}
@Html.Raw("];");
}
data.push({
label: labels,
data: d_main_quest_bar,
bars: {
show: true,
barWidth: 0.2,
order: 1
}
});
編輯 :我在本地運行了相同的代碼,並且發現逗號會自動用點替換,這就是為什么它在本地運行的原因,如@TJ Crowder所說。 但是當我在測試中運行它時不會發生。 那怎么可能?
您不能在JavaScript源代碼中使用本地化的小數點分隔符。 您必須使用.
:
var mainQuest_d1 = 8.16666666666667;
var mainQuest_d2 = 7.95833333333333;
var mainQuest_d3 = 8.125;
顯然,
已經具有另一種含義。 您期望數組有多少個元素
[0, 8,16666666666667]
包含裝有?
您不應在數字中使用逗號。 請改用小數點后一位。 逗號是保留給其他用途的特殊字符,例如數組中的分隔符和函數參數。
例如:
8,16666666666667
應該
8.16666666666667
您有幾個實例,所以這里是正確編寫的完整代碼:
var oneToTen = [0,1,2,3,4,5,6,7,8,9,10];
var ticks = [[0, 'Atmosfer'],[1, 'Servis'],[2, 'Yemeklerimiz']];
var labels = ['Atmosfer','Servis','Yemeklerimiz'];
var mainQuest_d1 = 8.16666666666667;
var mainQuest_d2 = 7.95833333333333;
var mainQuest_d3 = 8.125;
var d_main_quest_bar = [[0, 8.16666666666667],[1, 7.95833333333333],[2, 8.125]];
(最后4行共有6次更改)
您不應將逗號用於整數:
<script type="text/javascript">
var oneToTen = [0,1,2,3,4,5,6,7,8,9,10];
var ticks = [[0, 'Atmosfer'],[1, 'Servis'],[2, 'Yemeklerimiz']];
var labels = ['Atmosfer','Servis','Yemeklerimiz'];
var mainQuest_d1 = 8.16666666666667;
var mainQuest_d2 = 7.95833333333333;
var mainQuest_d3 = 8.125;
var d_main_quest_bar = [[0, 8.16666666666667],[1, 7.95833333333333],[2, 8.125]];
</script>
資料來源: http : //en.wikipedia.org/wiki/JavaScript_syntax#Number
這是不正確的:
var mainQuest_d1 = 8,16666666666667;
var mainQuest_d2 = 7,95833333333333;
var mainQuest_d3 = 8,125;
您不能在此處使用逗號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.