簡體   English   中英

JavaScript / JScript中缺少分號

[英]Missing semicolon in JavaScript / JScript

我在BRIO(Hyperion Interactive Reporting Studio)中編寫了以下代碼。 代碼不是JavaScript就是JScript,盡管我不確定是哪一種語言,因為我只是在學習語法,也不知道它們之間的區別。

無論如何,我越來越Script(line number) missing; before statement語法Script(line number) missing; before statement 以下行中的Script(line number) missing; before statement錯誤:

if (xYear == 2012 && yMonth == 10) {stopIt = "Yes"} else (yMonth == 12) {stopIt = "Yes"}

var myDate = New Date(xYear, yMonth, 1)

在下面的代碼中。

var xYear
var yMonth

for (j = 2009; j =  2012; j++)

{ 

    xYear = j

    if (xYear == 2009) {yMonth = 7} else {yMonth = 1}

    var StopIt = "No"

    Do 

    {
    var myDate = New Date(xYear, yMonth, 1)
    Alert (myDate)

    //var myQuery = ActiveDocument.Sections["qry_billing"]

    //myQuery.Limits["Accounting Year Month"].CustomValues.RemoveAll()
    //myQuery.Limits["Accounting Year Month"].CustomValues.Add(myDate)
    //myQuery.Limits["Accounting Year Month"].SelectedValues.Add(myDate)

    //myQuery.Process()

    //var Path = "W:\\Major Accounts\\Alliance Process\\AAA\\reference_files\\Results"
    //var File = "Results" + "_" + xYear + "_" +  yMonth+ " .txt"

    //ActiveDocument.Sections["Results"].Export(Path + "\\" + File,bqExportFormatText,true)

    yMonth = yMonth + 1

    if (xYear == 2012 && yMonth == 10) {stopIt = "Yes"} else if (yMonth == 12) {stopIt = "Yes"}
    }

    While (stopIt != "Yes")

}

有人可以幫我解決這個問題,因為我不明白為什么它要我提供; ,因為我認為BRIO文檔腳本中甚至不需要它。

else (yMonth == 12)

應該:

else if (yMonth == 12)

當您正確縮進代碼時,很容易注意到此錯誤:

if (xYear == 2012 && yMonth == 10) {
    stopIt = "Yes"
} 
else (yMonth == 12) { // shoule be: else if (yMonth == 12) {
    stopIt = "Yes"
}

注意:javascript 區分大小寫 ,這意味着

  • Do不是do
  • 因此對於alert而不是Alert
  • new而不是New

但是分號不是強制性的,您可以根據需要使用它們,也可以不使用。

更新:

看完您發布的完整代碼,伙計,它有很多奇怪的東西。

for (j = 2009; j =  2012; j++)

應該是這樣的:

for (var j = 2009; j <= 2012; j++)
...

您定義一個變量:

var StopIt = "No"

但是使用stopIt代替:

stopIt = "Yes"

您應該參加javascript課程\\教程,這並不難學習,但是處於當前狀態的代碼已完全損壞!

為了清楚起見,我的問題的答案是雙重的,基於gdoron的非常有用和翔實的答案以及Teemu在我的原始帖子下的評論。 總結一下答案,我已經在下面回答了我自己的問題:

此語句中的錯誤

if (xYear == 2012 && yMonth == 10) {stopIt = "Yes"} else (yMonth == 12) {stopIt = "Yes"}

ifelse之后丟失了

所以它應該看起來像這樣:

if (xYear == 2012 && yMonth == 10) {
    stopIt = "Yes"
}
else if (yMonth == 12) {
    stopIt = "Yes"
}

此語句中的錯誤

var myDate = New Date(xYear, yMonth, 1)

就是不應該對New進行大寫。 因此,應將其寫為:

var myDate = new Date(xYear, yMonth, 1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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