variable sheet obtener numero mostrar mayor cheat arreglo javascript

sheet - ¿Son las funciones objetos o tipos en Javascript?



obtener el numero mayor de un arreglo en javascript (3)

En su Javascript elocuente, Haverbeke afirma que (página 16):

"En un sistema JavaScript, la mayoría de estos datos están claramente separados en cosas llamadas valores. Cada valor tiene un tipo, que determina el tipo de rol que puede desempeñar. Hay seis tipos básicos de valores: números, cadenas, booleanos, objetos, Funciones, y valores indefinidos ".

Pero Crockford en Javascript: The Good Parts dice:

"Los tipos simples de JavaScript son números, cadenas, valores booleanos (verdaderos y falsos), nulos e indefinidos. Todos los demás valores son objetos. Los números, cadenas y valores booleanos son similares a objetos, ya que tienen métodos, pero son inmutables. Los objetos en JavaScript son colecciones con clave mutable. En JavaScript, las matrices son objetos, las funciones son objetos, las expresiones regulares son objetos y, por supuesto, los objetos son objetos ".

Ahora, al menos bajo V8 me sale esto:

> typeof function(){}; ''function'' > typeof {}; ''object''

No entiendo si el objeto es un tipo y la función es un objeto o si la función y el objeto son ambos tipos. Supongo que me estoy perdiendo la distinción entre tipos primitivos y otro tipo de tipos (¿tipos compuestos?).


Debes tener cuidado al hablar de tipos en javascript. Los valores tienen un Type , que puede ser uno de los siguientes:

  1. Indefinido
  2. Nulo
  3. Booleano
  4. Cuerda
  5. Número
  6. Objeto

Perversamente, el valor devuelto por el operador typeof no es el Tipo, es una cadena que es el mismo que el Tipo para la mayoría de los valores, pero es diferente para:

  1. Null devuelve ''objeto'', aunque su tipo es nulo
  2. Un objeto que implementa [[Call]] devuelve una función, aunque su tipo es Object
  3. Los objetos host pueden devolver cualquier cosa que les guste que no sea uno de los valores restringidos

Por lo tanto, la conclusión es que el Tipo de una función es Objeto, pero el tipo de alguna función de retornos de typeof someFn .


JavaScript soporta la programación funcional. Como resultado, todas las funciones de JavaScript son funciones de primera clase, lo que significa que las funciones se tratan como objetos ordinarios.

http://en.wikipedia.org/wiki/First-class_functions


Son un tipo de objeto.

El tipo es "function" :

typeof (function() {}) === "function" // true

La [[Class]] interna es [object Function] :

({}).toString.call(function() {}) === "[object Function]" // true

Son una instancia del prototipo constructor de Function :

(function(){}) instanceof Function // true

Son una instancia del prototipo de constructor de Object :

(function(){}) instanceof Object // true