Comme mentionné dans la rubrique JS, les bonnes parties semblent prétendre qu'une valeur de propriété ne peut pas être indéfinie. Toutefois, si vous effectuez les opérations suivantes dans la console de Chrome par exemple:Pourquoi "Javascript the Good Parts" affirme-t-il que "Une valeur de propriété peut être n'importe quelle valeur Javascript sauf pour undefined"?
var foo = {}
foo.bar = undefined
foo
Cliquez ensuite pour développer l'objet foo vous pouvez voir encore que foo contient une propriété appelée bar avec la valeur indéfinie. Bien sûr, du côté Javascript, vous ne pouvez pas faire la différence entre foo.bar renvoyant undefined et foo.unexistingproperty renvoyant undefined. Mais quel est le point de la console toujours accroché à la propriété qui a été définie à indéfini?
Je pense que vous pourriez appeler cela une «fonctionnalité» Chrome assez inutile :) – sje397
@ sje397: Pas inutile du tout. Il y a une différence entre une propriété existante et étant indéfinie et une propriété non existante. Vois ma réponse. –
Donc, comme beaucoup de réponses dit je sais que vous pouvez utiliser supprimer pour se débarrasser de la propriété et ainsi de suite. Mais l'idée principale avec ma question était pourquoi le livre prétend que la valeur ne peut pas être indéfinie. Clairement ceci semble être une déclaration incorrecte par Crockford. – Sam