JScript語法錯誤

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

          語法錯誤

          所創(chuàng)建的語句違反了一條或多條 JScript 的語法規(guī)則。

          要改正此錯誤

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

          需要 ':'

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

          要改正此錯誤

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

          需要 ';'

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

          要改正此錯誤

          • 在每條語句后寫一個分號。
          • 確保函數(shù)調(diào)用正確使用圓括號。
          • 確保沒有忘記 for 循環(huán)頭部中的分號。

          需要 '('

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

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

          要改正此錯誤

          • 給求值表達(dá)式添加左圓括號。

          需要 ')'

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

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

          要改正此錯誤

          • 給求值表達(dá)式添加右圓括號。

          需要 ']'

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

          要改正此錯誤

          • 給引用該數(shù)組無素的表達(dá)式添加右中括號。

          需要 '{'

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

          要改正此錯誤

          • 添加左大括號,標(biāo)記函數(shù)體的開始。

          需要 '}'

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

          要改正此錯誤

          • 添加右大括號,標(biāo)記函數(shù)、循環(huán)、語句塊、或者對象初始化的結(jié)束位置。

          需要標(biāo)識符

          在需要標(biāo)識符的上下文中,使用了不是標(biāo)識符的內(nèi)容。標(biāo)識符可以是:

          • 變量,
          • 屬性,
          • 數(shù)組,
          • 函數(shù)名稱。

          要改正此錯誤

          • 更改該表達(dá)式,使標(biāo)識符出現(xiàn)在等號的左邊。

          需要 '='

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

          要改正此錯誤

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

          需要 '/'

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

          要改正此錯誤

          • 插入一個結(jié)束斜杠,標(biāo)志正則表達(dá)式的結(jié)束位置。

          非法字符

          JScript 編譯器認(rèn)為由字符(或多個字符)組成的標(biāo)識符非法。合法字符應(yīng)遵守下述規(guī)則:

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

          要改正此錯誤

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

          字符串常數(shù)未結(jié)束

          字符串常數(shù)后面沒有用結(jié)束的單引號。字符串常數(shù)必須用單引號引起來。

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

          要改正此錯誤

          • 給字符串的結(jié)束處添加單引號。

          注釋未結(jié)束

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

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

          要改正此錯誤

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

          函數(shù)外有 'return' 語句

          在代碼的全部范圍內(nèi)使用。return 語句只能出現(xiàn)在函數(shù)體內(nèi)。

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

          return [ expression ];

          當(dāng)執(zhí)行到 return 語句時,首先對該表達(dá)式求值并將其返回作為該函數(shù)的值。如果沒有表達(dá)式,則返回 undefined 。

          當(dāng) return 語句執(zhí)行完畢后,該函數(shù)的執(zhí)行就終止了,即使還有函數(shù)體中仍有其它語句。這個規(guī)則的一個例外是如果該 return 語句發(fā)生在某個 try 塊內(nèi),且有相應(yīng)的 finally 塊,那么 在該函數(shù)返回前將執(zhí)行 finally 塊中的代碼。

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

          要改正此錯誤

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

          在循環(huán)外不能有 'break'

          試圖在循環(huán)外使用 break 關(guān)鍵詞。break 關(guān)鍵詞用來結(jié)束一個循環(huán)或 switch 語句。它必須位于循環(huán)體內(nèi)或 switch 語句內(nèi)。

          例外

          break 關(guān)鍵字后面可以帶一個標(biāo)簽。

          break labelname;

          只有在嵌套式循環(huán)或 switch 語句中并且需要跳出的循環(huán)不是最內(nèi)層循環(huán)時,才需要使用這種帶標(biāo)簽形式的break 關(guān)鍵詞。

          要改正此錯誤

          • 請確保 break 關(guān)鍵詞位于封閉的循環(huán)或 switch 語句內(nèi)。

          在循環(huán)外不能有 'continue'

          試圖在循環(huán)外使用 continue 語句。只有在下述語句內(nèi)才可以使用 continue 語句:

          • do-while 循環(huán),
          • while 循環(huán),
          • for 循環(huán),
          • for/in 循環(huán)。

          要改正此錯誤

          請確保 continue 語句位于下述語句的內(nèi)部:

          • do-while 循環(huán),
          • while 循環(huán),
          • for 循環(huán),
          • for/in 循環(huán)。

          需要十六進(jìn)制數(shù)

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

          z = "\u1A5F";

          要改正此錯誤

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

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


          需要 'while'

          在 do … while 循環(huán)中沒有包含 while 條件。一條 do 語句必須有相應(yīng)的 while 測試。

          要改正此錯誤

          • 在循環(huán)體結(jié)束處加上 while 測試語句。

          標(biāo)簽定義重復(fù)

          創(chuàng)建新標(biāo)簽時給定的名稱與現(xiàn)有標(biāo)簽名稱重復(fù)。標(biāo)簽可以用來標(biāo)記語句塊,但在一個指定范圍內(nèi)必須是唯一的。

          要改正此錯誤

          • 請確保程序中所使用的所有標(biāo)簽在名自的作用域內(nèi)都是唯一的。

          未找到標(biāo)簽

          所引用的標(biāo)簽不存在。標(biāo)簽可用來標(biāo)記代碼塊,不過必須在特定范圍內(nèi),而且必須唯一。

          要改正此錯誤

          • 確認(rèn)沒有拼錯標(biāo)簽名稱。
          • 確保所有標(biāo)簽所引用的都是在當(dāng)前作用域內(nèi)定義過的標(biāo)簽(包括在作用域之前所做的定義)。

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

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

          要改正此錯誤

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

          需要標(biāo)識符、字符串或者數(shù)字

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

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

          要改正此錯誤

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

          需要 '@end'

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

          要改正此錯誤

          • 添加相應(yīng)的 @end 語句。

          條件編譯已關(guān)閉

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

          /*@cc_on @*/

          要改正此錯誤

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

          需要常數(shù)

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

          要改正此錯誤

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

          需要 '@'

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

          要改正此錯誤

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

          需要 'catch'

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

          要改正此錯誤

          • 添加相應(yīng)的 catch 語句塊。
          • 試試使用 finally 語句塊而不使用 catch語句塊。

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

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

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

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

          要改正此錯誤

          • 請確保 throw 關(guān)鍵字和待拋出的表達(dá)式在同一行。
          posted on 2006-08-13 16:07 窮鬼 閱讀(235) 評論(0)  編輯  收藏 所屬分類: AJAX學(xué)習(xí)
          主站蜘蛛池模板: 简阳市| 嘉义县| 阳原县| 阜南县| 大厂| 江华| 五峰| 陆河县| 攀枝花市| 会同县| 漳浦县| 大石桥市| 玉田县| 福泉市| 新邵县| 准格尔旗| 抚顺市| 敦化市| 台东市| 利津县| 阆中市| 丰台区| 乐陵市| 屯门区| 天台县| 福泉市| 民乐县| 益阳市| 乡城县| 兴海县| 左云县| 阳原县| 拜城县| 万全县| 玛沁县| 周至县| 鲁山县| 抚州市| 盐山县| 定西市| 渝中区|