非常教程

JavaScript参考手册

错误 | Errors

Errors: Not a function

信息

TypeError: "x" is not a function

错误类型

TypeError.

什么地方出了错?

它试图从一个函数中调用一个值,但该值实际上并不是一个函数。有些代码希望你提供一个函数,但是这没有发生。

也许在函数名称中存在拼写错误?也许你正在调用方法的对象没有这个函数?例如,JavaScript对象没有map函数,但是JavaScript Array对象具有。

有许多内置函数需要(回调)函数。您必须提供一个函数才能使这些方法正常工作:

  • 使用ArrayTypedArray对象时:
    • Array.prototype.every(), Array.prototype.some(), Array.prototype.forEach(), Array.prototype.map(), Array.prototype.filter(), Array.prototype.reduce(), Array.prototype.reduceRight(), Array.prototype.find()
  • 使用MapSet对象时:
    • Map.prototype.forEach()Set.prototype.forEach()

示例

函数名称中的拼写错误

在这种情况下,这种情况经常发生,方法名称中会出现拼写错误:

var x = document.getElementByID('foo');
// TypeError: document.getElementByID is not a function

正确的函数名称是getElementById

var x = document.getElementById('foo');

函数调用错误的对象

对于某些方法,你必须提供一个(回调)函数,它只能在特定的对象上工作。在这个例子中,Array.prototype.map()使用只能用于对象Array

var obj = {a: 13, b: 37, c: 42};

obj.map(function(num) {
  return num * 2;
});

// TypeError: obj.map is not a function

改用数组:

var numbers = [1, 4, 9];

numbers.map(function(num) { 
  return num * 2; 
}); 

// Array [2, 8, 18]

函数与预先存在的属性共享一个名称

有时候在创建一个类时,可能会有一个属性和一个具有相同名称的函数。在调用该函数时,编译器认为函数不存在。

var Dog = function () {
 this.age = 11;
 this.color = "black";
 this.name = "Ralph";
 return this;
} 

Dog.prototype.name = function(name) {
 this.name = name;
 return this;
}


var myNewDog = new Dog();
myNewDog.name("Cassidy"); //Uncaught TypeError: myNewDog.name is not a function

改为使用其他属性名称:

var Dog = function () {
 this.age = 11;
 this.color = "black";
 this.dogName = "Ralph"; //Using this.dogName instead of .name
 return this;
} 

Dog.prototype.name = function(name) {
 this.dogName = name;
 return this;
}


var myNewDog = new Dog();
myNewDog.name("Cassidy"); //Dog { age: 11, color: 'black', dogName: 'Cassidy' }

错误 | 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: JSON bad parse
40.Errors: Malformed formal parameter
41.Errors: Malformed URI
42.Errors: Missing bracket after list
43.Errors: Missing colon after property id
44.Errors: Missing curly after function body
45.Errors: Missing curly after property list
46.Errors: Missing formal parameter
47.Errors: Missing initializer in const
48.Errors: Missing name after dot operator
49.Errors: Missing parenthesis after argument list
50.Errors: Missing parenthesis after condition
51.Errors: Missing semicolon before statement
52.Errors: More arguments needed
53.Errors: Negative repetition count
54.Errors: No non-null object
55.Errors: No properties
56.Errors: No variable name
57.Errors: Non configurable array element
58.Errors: Not a codepoint
59.Errors: Not a constructor
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,比如网络