簡體   English   中英

未捕獲的語法錯誤:意外的數字

[英]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;

請參閱什么是JavaScript中的小數點分隔符?

顯然,已經具有另一種含義。 您期望數組有多少個元素

[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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM