Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

141
Views
tipo de verificación de función personalizada de javascipt

Veo un tipo de verificación de función en javascript pero no entiendo cómo funciona

 const typeOf = value => Object.prototype.toString.call(value).slice(8,-1) typeOf(1) //=> number typeOf("a") //=> string typeOf([1]) //=> array typeOf(()=> {}) //=> function

por favor ayúdame a explicar

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Object.prototype.toString es similar a una declaración de cambio grande sobre el valor al que se llama. Lo que hace es :

 1. If the this value is undefined, return "[object Undefined]". 2. If the this value is null, return "[object Null]". 3. Let O be ! ToObject(this value). 4. Let isArray be ? IsArray(O). 5. If isArray is true, let builtinTag be "Array". 6. Else if O has a [[ParameterMap]] internal slot, let builtinTag be "Arguments". 7. Else if O has a [[Call]] internal method, let builtinTag be "Function". 8. Else if O has an [[ErrorData]] internal slot, let builtinTag be "Error". 9. Else if O has a [[BooleanData]] internal slot, let builtinTag be "Boolean". 10. Else if O has a [[NumberData]] internal slot, let builtinTag be "Number". 11. Else if O has a [[StringData]] internal slot, let builtinTag be "String". 12. Else if O has a [[DateValue]] internal slot, let builtinTag be "Date". 13. Else if O has a [[RegExpMatcher]] internal slot, let builtinTag be "RegExp". 14. Else, let builtinTag be "Object". 15. Let tag be ? Get(O, @@toStringTag). 16. If Type(tag) is not String, set tag to builtinTag. 17. Return the string-concatenation of "[object ", tag, and "]".

Esencialmente itera a través de diferentes tipos de objetos de lenguaje y creará una cadena correspondiente a la que coincide. Por ejemplo, si se pasa un número, la cadena generada es "Number" .

Esta cadena luego se concatena para producir

 [object Number] ^^^^^^

donde la sección ^^^ varía según el tipo de argumento que se haya pasado.

Hacer .slice(8,-1) es como invertir el paso 17: toma la subcadena a partir del índice 8 (justo después del espacio) hasta el penúltimo carácter de la cadena (inclusive), por lo que la subcadena que se extrae es "Number" o "Boolean" o algo similar.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!