JScript語法錯誤

          JScript 語法錯誤是指當 JScript 語句違反了 JScript 腳本語言的一條或多條語法規則時導致的錯誤。JScript 語法錯誤發生在程序編譯階段,在開始運行該程序之前。
          十進制十六進制說 明
          1001800A03E9內存不足
          1002800A03EA語法錯誤
          1003800A03EB需要“:”
          1004800A03EC需要“;”
          1005800A03ED需要“(”
          1006800A03EE需要“)”
          1007800A03EF需要“]”
          1008800A03F0需要“{”
          1009800A03F1需要“}”
          1010800A03F2需要標識符
          1011800A03F3需要“=”
          1012800A03F4需要“/”
          1013800A03F5無效數
          1014800A03F6非法字符
          1015800A03F7字符串常數未結束
          1016800A03F8注釋未結束
          1018800A03FA函數外有 ’return’ 語句
          1019800A03FB在循環外不能有“break”
          1020800A03FC在循環外不能有“continue”
          1023800A03FF需要十六進制數
          1024800A0400需要“while”
          1025800A0401標簽定義重復
          1026800A0402未找到標簽
          1027800A0403一條 “switch” 語句中只能有一個 “default”
          1028800A0404需要標識符、字符串或者數字
          1029800A0405需要“@end”
          1030800A0406條件編譯已關閉
          1031800A0407需要常數
          1032800A0408需要“@”
          1033800A0409需要“catch”
          1034800A040A需要“var”
          1035800A040B“Throw”的后面必須跟有一個表達式,且在同一源代碼行上

          語法錯誤

          所創建的語句違反了一條或多條 JScript 的語法規則。

          要改正此錯誤

          • 根據所給定的行號檢查程序的語法。
          • 查找不匹配的圓括號或中括號。

          需要 ':'

          試圖創建一個使用三目條件運算符的表達式,但是在第二操作數和第三操作數之間沒有包括冒號。三目(三個操作數)條件操作符在第二個(為真)和第三個(為假)操作數之間一定要有一個冒號。

          要改正此錯誤

          • 在第二個和第三個操作數之間插入一個冒號。

          需要 ';'

          試圖在一行內寫多條語句,但沒有用分號將各條語句加以分隔。分號是用來結束語句的。可以在一行內寫多條語句,不過每條語句后都必須加分號以便分開。

          要改正此錯誤

          • 在每條語句后寫一個分號。
          • 確保函數調用正確使用圓括號。
          • 確保沒有忘記 for 循環頭部中的分號。

          需要 '('

          試圖用一組圓括號來括住一個表達式,但缺少開始圓括號。有些表達式必須用一組開始圓括號和結束圓括號括住。

          for (initialize; test; increment) {  statement;  }

          要改正此錯誤

          • 給求值表達式添加左圓括號。

          需要 ')'

          試圖用一組圓括號來括住一個表達式,但缺少結束圓括號。有些表達式必須用一組開始圓括號和結束圓括號括住。

          for (initialize; test; increment) {  statement;  }

          要改正此錯誤

          • 給求值表達式添加右圓括號。

          需要 ']'

          引用數組元素時缺少右中括號。引用數組元素的任何表達式都必須包括左中括號和右中括號。

          要改正此錯誤

          • 給引用該數組無素的表達式添加右中括號。

          需要 '{'

          沒有用左大括號來標記函數體的開始位置。對于組成函數體的代碼,即使只有一行,也必須包含在左大括號和右大括號中。請注意函數體對大括號的使用要比循環中的使用更嚴格。

          要改正此錯誤

          • 添加左大括號,標記函數體的開始。

          需要 '}'

          沒有用右大括號來標記函數體、循環、代碼塊或者對象初始化軟件的結束位置。這種錯誤的一個示例是:for 循環只有標記循環體起點的左括號。

          要改正此錯誤

          • 添加右大括號,標記函數、循環、語句塊、或者對象初始化的結束位置。

          需要標識符

          在需要標識符的上下文中,使用了不是標識符的內容。標識符可以是:

          • 變量,
          • 屬性,
          • 數組,
          • 函數名稱。

          要改正此錯誤

          • 更改該表達式,使標識符出現在等號的左邊。

          需要 '='

          試圖創建一個供條件編譯語句使用的變量,但在變量和要賦給該變量的值之間缺少一個等號。

          要改正此錯誤

          • 添加一個等號。例如:
            @set @myvar1 = 1

          需要 '/'

          試圖創建一個正則表達式文字,但沒有包括其中的斜杠 (/)。正如字符串文字表示為一對單引號內的字符一樣,正則表達式文字則表示為一對斜杠 (/) 內的字符。

          要改正此錯誤

          • 插入一個結束斜杠,標志正則表達式的結束位置。

          非法字符

          JScript 編譯器認為由字符(或多個字符)組成的標識符非法。合法字符應遵守下述規則:

          • 第一個字符必須為ASCII字母(大寫或小寫)或下劃線 (_)。
          • 后續字符可以是ASCII字母、數字和下劃線。
          • 標識符名稱不能為保留字。

          要改正此錯誤

          • 避免使用不屬于 JScript 語言定義部分的字符。

          字符串常數未結束

          字符串常數后面沒有用結束的單引號。字符串常數必須用單引號引起來。

          注意 可以使用單引號或雙引號作為匹配符,雙引號可以包含在單引號所引起來的字符串中,單引號也可以包含在雙引號引起來的字符串中。

          要改正此錯誤

          • 給字符串的結束處添加單引號。

          注釋未結束

          多行注釋塊沒有結束。多行注釋塊以一個 "/*" 組合開始,并以"*/" 組合結束。下面是示例:

          /* 這是注釋  這是同一注釋的另一部分。*/

          要改正此錯誤

          • 請確保以“*/” 結束多行注釋。

          函數外有 'return' 語句

          在代碼的全部范圍內使用。return 語句只能出現在函數體內。

          使用 () 操作符調用函數是一個表達式。所有的表達式都有值;return 語句用來指定由函數返回的值。通常的形式是:

          return [ expression ];

          當執行到 return 語句時,首先對該表達式求值并將其返回作為該函數的值。如果沒有表達式,則返回 undefined 。

          當 return 語句執行完畢后,該函數的執行就終止了,即使還有函數體中仍有其它語句。這個規則的一個例外是如果該 return 語句發生在某個 try 塊內,且有相應的 finally 塊,那么 在該函數返回前將執行 finally 塊中的代碼。

          如果函數是由于到達函數體結束處而不是因為執行return語句返回,則返回值為 undefined(表示該函數的結果無法作為大表達式的部分。

          要改正此錯誤

          • 從代碼的主要部分中刪除 return 語句。(全部范圍)。

          在循環外不能有 'break'

          試圖在循環外使用 break 關鍵詞。break 關鍵詞用來結束一個循環或 switch 語句。它必須位于循環體內或 switch 語句內。

          例外

          break 關鍵字后面可以帶一個標簽。

          break labelname;

          只有在嵌套式循環或 switch 語句中并且需要跳出的循環不是最內層循環時,才需要使用這種帶標簽形式的break 關鍵詞。

          要改正此錯誤

          • 請確保 break 關鍵詞位于封閉的循環或 switch 語句內。

          在循環外不能有 'continue'

          試圖在循環外使用 continue 語句。只有在下述語句內才可以使用 continue 語句:

          • do-while 循環,
          • while 循環,
          • for 循環,
          • for/in 循環。

          要改正此錯誤

          請確保 continue 語句位于下述語句的內部:

          • do-while 循環,
          • while 循環,
          • for 循環,
          • for/in 循環。

          需要十六進制數

          創建了一個不正確的 Unicode 轉義序列。Unicode 轉義序列以 \u 開頭,后跟整整四位十六進制數(不多,也不少)。Unicode 十六進制數不僅包含數字 0-9,大寫字母 A-F,還有小寫字母 a-f。下面的示例演示了正確形成的 Unicode 轉義序列。

          z = "\u1A5F";

          要改正此錯誤

          • 請確保 Unicode 十六進制數是以 \u 開頭的,只包含數字0-9,大寫字母 A-F、小寫字母 a-f;并組成四個數字。

          注意 如果希望在字符串中使用文字文本 t \u,請使用兩個短斜杠 _(\\u) – 一個用來將第一個反斜杠轉義。


          需要 'while'

          在 do … while 循環中沒有包含 while 條件。一條 do 語句必須有相應的 while 測試。

          要改正此錯誤

          • 在循環體結束處加上 while 測試語句。

          標簽定義重復

          創建新標簽時給定的名稱與現有標簽名稱重復。標簽可以用來標記語句塊,但在一個指定范圍內必須是唯一的。

          要改正此錯誤

          • 請確保程序中所使用的所有標簽在名自的作用域內都是唯一的。

          未找到標簽

          所引用的標簽不存在。標簽可用來標記代碼塊,不過必須在特定范圍內,而且必須唯一。

          要改正此錯誤

          • 確認沒有拼錯標簽名稱。
          • 確保所有標簽所引用的都是在當前作用域內定義過的標簽(包括在作用域之前所做的定義)。

          一條 'switch' 語句中只能有一個 'default'

          在一個 switch 語句中試圖使用多個 default 語句。Default分支總是位于 switch 語句的最后一個分支語句(也就是匹配失敗的情形)。

          要改正此錯誤

          • 從 switch 語句中刪除任何多余的default 分支語句(在switch 語句中使用了多個default 語句)。

          需要標識符、字符串或者數字

          使用了不正確的文字語法來聲明對象文字。對象文字的屬性必須是標識符、字符串或一個數。對象文字(也稱為“對象初始化程序”)由用逗號分割的屬性:值對組成,所有值對都用括號括起來。例如:

          var point = {x:1.2, y:-3.4};

          要改正此錯誤

          • 請確保使用了正確的文字語法。

          需要 '@end'

          試圖創建一個條件編譯的代碼塊,但在最后沒有@end 語句。通過把JScript 語句放在 @if/@end 塊內,可以實現條件編譯。

          要改正此錯誤

          • 添加相應的 @end 語句。

          條件編譯已關閉

          在沒有先啟用條件編譯的情況下試圖使用條件編譯變量。打開條件編譯將告訴 JScript 編譯器要解釋那些以 @ 開頭作為條件編譯變量的標識符。使用下面的語句作為條件代碼的起始語句就可以打開條件編譯:

          /*@cc_on @*/

          要改正此錯誤

          • 在條件代碼的起始處添加下面的語句:
          • /*@cc_on @*/

          需要常數

          試圖在條件編譯測試語句中使用一個(非條件編譯)變量。條件編譯測試語句的值必須為一個常數。

          要改正此錯誤

          • 用文字替代該變量。
          • 用條件編譯變量替代該變量。

          需要 '@'

          試圖使用 @set 語句創建一個用于條件編譯語句的變量,但在變量名稱前沒有 @ 符號。

          要改正此錯誤

          • 立即在變量名之前添加一個 @ 符號。例如:
            @set @myvar = 1

          需要 'catch'

          使用了處理異常的try 語句塊,但沒有些相應的 catch 語句。異常處理機制需要將那些可能失敗的代碼,連同當異常發生后不會執行的代碼一起,包在一個 try 語句塊中。發生異常時通過使用 throw 語句將異常從 try 語句塊中拋出,并被 try 語句塊外的一個或多個catch 語句抓獲。

          要改正此錯誤

          • 添加相應的 catch 語句塊。
          • 試試使用 finally 語句塊而不使用 catch語句塊。

          Throw 的后面跟有一個表達式,且在同一源代碼行上

          使用了 throw 關鍵字,但在同一行內沒有緊接一個表達式。一個 throw 語句由兩部分組成:throw 關鍵字,后面緊跟待拋出的表達式。例如;

          if (denominator == 0) {  throw new DivideByZeroException();  }

          不能將這兩個組件分成兩行。

          要改正此錯誤

          • 請確保 throw 關鍵字和待拋出的表達式在同一行。
          posted on 2006-08-13 16:07 窮鬼 閱讀(235) 評論(0)  編輯  收藏 所屬分類: AJAX學習
          主站蜘蛛池模板: 呼伦贝尔市| 新津县| 隆德县| 汪清县| 长寿区| 农安县| 巩义市| 越西县| 泽库县| 正宁县| 昭苏县| 清水县| 城固县| 那坡县| 洪湖市| 孝义市| 拉萨市| 札达县| 宜春市| 敖汉旗| 靖西县| 乌海市| 双牌县| 延川县| 徐汇区| 东平县| 台北县| 缙云县| 雷州市| 两当县| 新闻| 德化县| 茂名市| 凤山县| 澄城县| 德昌县| 安陆市| 古田县| 德清县| 巴彦县| 昌黎县|