Essayer d'obtenir mes fondamentaux JavaSscript forts. Donc la question concerne les littéraux de chaînes. Ne sont-ils pas Objects
? Si votre réponse est «oui» alors ma question est pourquoi est instanceof
retournant false
?Les objets littéraux de chaîne sont-ils ou non?
> var s = new String
> s.constructor.toString()
function String() { [native code] }
> typeof s
object
> s instanceof String
true
> s instanceof Object
true
> s instanceof Number
false
Jusqu'ici tout va bien.
> typeof 'c'
string
> 'c' instanceof Object
false
> 'c' instanceof String
false
> 'c'.length
1
> 'c'.charAt(0)
c
> 'c'.constructor.toString()
function String() { [native code] }
Je dirais que cette question est un doublon de http://stackoverflow.com/questions/203739/why-does-instanceof-return-false-for-some-literals aussi, mais la réponse sur cette copie est plate faux (souligné dans le commentaire à la réponse acceptée là-bas). –
@Cresent Fresh - vous avez absolument raison! 3 .toString() ou 3..toString() fonctionne (btw, que se passe-t-il avec ces deux points?) – Murali
Quand j'ai essayé avec 3 points, il obtient une erreur étrange! 3 ... toString() TypeError sur la ligne 1: Méthode interne des descendants XML appelée incompatible Number – Murali