JScript語法錯誤
JScript 語法錯誤是指當 JScript 語句違反了 JScript 腳本語言的一條或多條語法規則時導致的錯誤。JScript 語法錯誤發生在程序編譯階段,在開始運行該程序之前。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
語法錯誤 所創建的語句違反了一條或多條 JScript 的語法規則。 要改正此錯誤
需要 ':' 試圖創建一個使用三目條件運算符的表達式,但是在第二操作數和第三操作數之間沒有包括冒號。三目(三個操作數)條件操作符在第二個(為真)和第三個(為假)操作數之間一定要有一個冒號。 要改正此錯誤
需要 ';' 試圖在一行內寫多條語句,但沒有用分號將各條語句加以分隔。分號是用來結束語句的。可以在一行內寫多條語句,不過每條語句后都必須加分號以便分開。 要改正此錯誤
需要 '(' 試圖用一組圓括號來括住一個表達式,但缺少開始圓括號。有些表達式必須用一組開始圓括號和結束圓括號括住。 for (initialize; test; increment) { statement; } 要改正此錯誤
需要 ')' 試圖用一組圓括號來括住一個表達式,但缺少結束圓括號。有些表達式必須用一組開始圓括號和結束圓括號括住。 for (initialize; test; increment) { statement; } 要改正此錯誤
需要 ']' 引用數組元素時缺少右中括號。引用數組元素的任何表達式都必須包括左中括號和右中括號。 要改正此錯誤
需要 '{' 沒有用左大括號來標記函數體的開始位置。對于組成函數體的代碼,即使只有一行,也必須包含在左大括號和右大括號中。請注意函數體對大括號的使用要比循環中的使用更嚴格。 要改正此錯誤
需要 '}' 沒有用右大括號來標記函數體、循環、代碼塊或者對象初始化軟件的結束位置。這種錯誤的一個示例是:for 循環只有標記循環體起點的左括號。 要改正此錯誤
需要標識符 在需要標識符的上下文中,使用了不是標識符的內容。標識符可以是:
要改正此錯誤
需要 '=' 試圖創建一個供條件編譯語句使用的變量,但在變量和要賦給該變量的值之間缺少一個等號。 要改正此錯誤
需要 '/' 試圖創建一個正則表達式文字,但沒有包括其中的斜杠 (/)。正如字符串文字表示為一對單引號內的字符一樣,正則表達式文字則表示為一對斜杠 (/) 內的字符。 要改正此錯誤
非法字符 JScript 編譯器認為由字符(或多個字符)組成的標識符非法。合法字符應遵守下述規則:
要改正此錯誤
字符串常數未結束 字符串常數后面沒有用結束的單引號。字符串常數必須用單引號引起來。 注意 可以使用單引號或雙引號作為匹配符,雙引號可以包含在單引號所引起來的字符串中,單引號也可以包含在雙引號引起來的字符串中。 要改正此錯誤
注釋未結束 多行注釋塊沒有結束。多行注釋塊以一個 "/*" 組合開始,并以"*/" 組合結束。下面是示例: /* 這是注釋 這是同一注釋的另一部分。*/ 要改正此錯誤
函數外有 'return' 語句 在代碼的全部范圍內使用。return 語句只能出現在函數體內。 使用 () 操作符調用函數是一個表達式。所有的表達式都有值;return 語句用來指定由函數返回的值。通常的形式是: return [ expression ]; 當執行到 return 語句時,首先對該表達式求值并將其返回作為該函數的值。如果沒有表達式,則返回 undefined 。 當 return 語句執行完畢后,該函數的執行就終止了,即使還有函數體中仍有其它語句。這個規則的一個例外是如果該 return 語句發生在某個 try 塊內,且有相應的 finally 塊,那么 在該函數返回前將執行 finally 塊中的代碼。 如果函數是由于到達函數體結束處而不是因為執行return語句返回,則返回值為 undefined(表示該函數的結果無法作為大表達式的部分。 要改正此錯誤
在循環外不能有 'break' 試圖在循環外使用 break 關鍵詞。break 關鍵詞用來結束一個循環或 switch 語句。它必須位于循環體內或 switch 語句內。 例外 break 關鍵字后面可以帶一個標簽。 break labelname; 只有在嵌套式循環或 switch 語句中并且需要跳出的循環不是最內層循環時,才需要使用這種帶標簽形式的break 關鍵詞。 要改正此錯誤
在循環外不能有 'continue' 試圖在循環外使用 continue 語句。只有在下述語句內才可以使用 continue 語句:
要改正此錯誤 請確保 continue 語句位于下述語句的內部:
需要十六進制數 創建了一個不正確的 Unicode 轉義序列。Unicode 轉義序列以 \u 開頭,后跟整整四位十六進制數(不多,也不少)。Unicode 十六進制數不僅包含數字 0-9,大寫字母 A-F,還有小寫字母 a-f。下面的示例演示了正確形成的 Unicode 轉義序列。 z = "\u1A5F"; 要改正此錯誤
注意 如果希望在字符串中使用文字文本 t \u,請使用兩個短斜杠 _(\\u) – 一個用來將第一個反斜杠轉義。 需要 'while' 在 do … while 循環中沒有包含 while 條件。一條 do 語句必須有相應的 while 測試。 要改正此錯誤
標簽定義重復 創建新標簽時給定的名稱與現有標簽名稱重復。標簽可以用來標記語句塊,但在一個指定范圍內必須是唯一的。 要改正此錯誤
未找到標簽 所引用的標簽不存在。標簽可用來標記代碼塊,不過必須在特定范圍內,而且必須唯一。 要改正此錯誤
一條 'switch' 語句中只能有一個 'default' 在一個 switch 語句中試圖使用多個 default 語句。Default分支總是位于 switch 語句的最后一個分支語句(也就是匹配失敗的情形)。 要改正此錯誤
需要標識符、字符串或者數字 使用了不正確的文字語法來聲明對象文字。對象文字的屬性必須是標識符、字符串或一個數。對象文字(也稱為“對象初始化程序”)由用逗號分割的屬性:值對組成,所有值對都用括號括起來。例如: var point = {x:1.2, y:-3.4}; 要改正此錯誤
需要 '@end' 試圖創建一個條件編譯的代碼塊,但在最后沒有@end 語句。通過把JScript 語句放在 @if/@end 塊內,可以實現條件編譯。 要改正此錯誤
條件編譯已關閉 在沒有先啟用條件編譯的情況下試圖使用條件編譯變量。打開條件編譯將告訴 JScript 編譯器要解釋那些以 @ 開頭作為條件編譯變量的標識符。使用下面的語句作為條件代碼的起始語句就可以打開條件編譯: /*@cc_on @*/ 要改正此錯誤
需要常數 試圖在條件編譯測試語句中使用一個(非條件編譯)變量。條件編譯測試語句的值必須為一個常數。 要改正此錯誤
需要 '@' 試圖使用 @set 語句創建一個用于條件編譯語句的變量,但在變量名稱前沒有 @ 符號。 要改正此錯誤
需要 'catch' 使用了處理異常的try 語句塊,但沒有些相應的 catch 語句。異常處理機制需要將那些可能失敗的代碼,連同當異常發生后不會執行的代碼一起,包在一個 try 語句塊中。發生異常時通過使用 throw 語句將異常從 try 語句塊中拋出,并被 try 語句塊外的一個或多個catch 語句抓獲。 要改正此錯誤
Throw 的后面跟有一個表達式,且在同一源代碼行上 使用了 throw 關鍵字,但在同一行內沒有緊接一個表達式。一個 throw 語句由兩部分組成:throw 關鍵字,后面緊跟待拋出的表達式。例如; if (denominator == 0) { throw new DivideByZeroException(); } 不能將這兩個組件分成兩行。 要改正此錯誤
|