非常教程

JavaScript参考手册

错误 | Errors

Errors: JSON bad parse

信息

SyntaxError: JSON.parse: unterminated string literal
SyntaxError: JSON.parse: bad control character in string literal
SyntaxError: JSON.parse: bad character in string literal
SyntaxError: JSON.parse: bad Unicode escape
SyntaxError: JSON.parse: bad escape character
SyntaxError: JSON.parse: unterminated string
SyntaxError: JSON.parse: no number after minus sign
SyntaxError: JSON.parse: unexpected non-digit
SyntaxError: JSON.parse: missing digits after decimal point
SyntaxError: JSON.parse: unterminated fractional number
SyntaxError: JSON.parse: missing digits after exponent indicator
SyntaxError: JSON.parse: missing digits after exponent sign
SyntaxError: JSON.parse: exponent part is missing a number
SyntaxError: JSON.parse: unexpected end of data
SyntaxError: JSON.parse: unexpected keyword
SyntaxError: JSON.parse: unexpected character
SyntaxError: JSON.parse: end of data while reading object contents
SyntaxError: JSON.parse: expected property name or '}'
SyntaxError: JSON.parse: end of data when ',' or ']' was expected
SyntaxError: JSON.parse: expected ',' or ']' after array element
SyntaxError: JSON.parse: end of data when property name was expected
SyntaxError: JSON.parse: expected double-quoted property name
SyntaxError: JSON.parse: end of data after property name when ':' was expected
SyntaxError: JSON.parse: expected ':' after property name in object
SyntaxError: JSON.parse: end of data after property value in object
SyntaxError: JSON.parse: expected ',' or '}' after property value in object
SyntaxError: JSON.parse: expected ',' or '}' after property-value pair in object literal
SyntaxError: JSON.parse: property names must be double-quoted strings
SyntaxError: JSON.parse: expected property name or '}'
SyntaxError: JSON.parse: unexpected character
SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data

错误类型

SyntaxError

什么地方出了错?

JSON.parse()将字符串解析为JSON。该字符串必须是有效的JSON,如果遇到不正确的语法,将会抛出此错误。

例子

JSON.parse() 不允许尾随逗号

两行都会抛出一个SyntaxError:

JSON.parse('[1, 2, 3, 4,]');
JSON.parse('{"foo": 1,}');
// SyntaxError JSON.parse: unexpected character 
// at line 1 column 14 of the JSON data

省略尾部的逗号来正确解析JSON:

JSON.parse('[1, 2, 3, 4]');
JSON.parse('{"foo": 1}');

属性名称必须是双引号字符串

你不能在属性周围使用单引号,比如'foo'。

JSON.parse("{'foo': 1}");
// SyntaxError: JSON.parse: expected property name or '}' 
// at line 1 column 2 of the JSON data

而是写下“foo”:

JSON.parse('{"foo": 1}');

前导零和小数点

您不能使用前导零,如01,小数点后面必须至少有一位数字。

JSON.parse('{"foo": 01}');
// SyntaxError: JSON.parse: expected ',' or '}' after property value 
// in object at line 1 column 2 of the JSON data

JSON.parse('{"foo": 1.}'); 
// SyntaxError: JSON.parse: unterminated fractional number 
// at line 1 column 2 of the JSON data

而是只写1而不是零,小数点后至少使用一位数字:

JSON.parse('{"foo": 1}');
JSON.parse('{"foo": 1.0}');

错误 | Errors相关

1.Error
2.error.message
3.error.name
4.Error.prototype
5.error.toString
6.Errors
7.Errors: Already has pragma
8.Errors: Array sort argument
9.Errors: Bad octal
10.Errors: Bad radix
11.Errors: Bad regexp flag
12.Errors: Bad return or yield
13.Errors: Called on incompatible type
14.Errors: Cant access lexical declaration before init
15.Errors: Cant define property object not extensible
16.Errors: Cant delete
17.Errors: Cant redefine property
18.Errors: Cyclic object value
19.Errors: Dead object
20.Errors: Delete in strict mode
21.Errors: Deprecated caller or arguments usage
22.Errors: Deprecated expression closures
23.Errors: Deprecated octal
24.Errors: Deprecated source map pragma
25.Errors: Deprecated String generics
26.Errors: Deprecated toLocaleFormat
27.Errors: Equal as assign
28.Errors: For-each-in loops are deprecated
29.Errors: Getter only
30.Errors: Identifier after number
31.Errors: Illegal character
32.Errors: in operator no object
33.Errors: Invalid array length
34.Errors: Invalid assignment left-hand side
35.Errors: Invalid const assignment
36.Errors: Invalid date
37.Errors: Invalid for-in initializer
38.Errors: Invalid for-of initializer
39.Errors: Malformed formal parameter
40.Errors: Malformed URI
41.Errors: Missing bracket after list
42.Errors: Missing colon after property id
43.Errors: Missing curly after function body
44.Errors: Missing curly after property list
45.Errors: Missing formal parameter
46.Errors: Missing initializer in const
47.Errors: Missing name after dot operator
48.Errors: Missing parenthesis after argument list
49.Errors: Missing parenthesis after condition
50.Errors: Missing semicolon before statement
51.Errors: More arguments needed
52.Errors: Negative repetition count
53.Errors: No non-null object
54.Errors: No properties
55.Errors: No variable name
56.Errors: Non configurable array element
57.Errors: Not a codepoint
58.Errors: Not a constructor
59.Errors: Not a function
60.Errors: Not defined
61.Errors: Precision range
62.Errors: Property access denied
63.Errors: Read-only
64.Errors: Redeclared parameter
65.Errors: Reserved identifier
66.Errors: Resulting string too large
67.Errors: Stmt after return
68.Errors: Strict Non Simple Params
69.Errors: Too much recursion
70.Errors: Typed array invalid arguments
71.Errors: Undeclared var
72.Errors: Undefined prop
73.Errors: Unexpected token
74.Errors: Unexpected type
75.Errors: Unnamed function statement
76.Errors: Unterminated string literal
77.Errors: Var hides argument
78.EvalError
79.EvalError.prototype
80.RangeError
81.RangeError.prototype
82.ReferenceError
83.ReferenceError.prototype
84.SyntaxError
85.SyntaxError.prototype
86.TypeError
87.TypeError.prototype
88.URIError
89.URIError.prototype
JavaScript

JavaScript 是一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言。它已经由ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器( Chrome、IE、FireFox、Safari、Opera )支持。JavaScript 是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持 I/O,比如网络