getz85, malheureusement, les exemples que je vois sur la première page ne démontrent qu'une chose : ceux qui les postent ne connaissent pas JavaScript...
Si je prends l'exemple
"Why am I a " + typeof + ""; // "Why am I a number"
typeof étant un opérateur, ce qui suit doit être l'opérande et + "" est un opérande valide puisque le + en préfixe est un opérateur de transtypage en nombre, donc une chaine vide transtypée en nombre (console.log(+"")) donne 0 et typeof 0 est bien un number. Il n'y a rien là de spectaculaire et tout cela est parfaitement décrit par ECMA262.
Bref, qu'on aime ou qu'on aime pas le typage dynamique, c'est un fait que JavaScript est un langage à typage dynamique et il faut le prendre en compte. Le corollaire, c'est que toute opération doit retourner un résultat et que si les paramètres de l'opération sont incompatibles, il faut les transtyper selon des règles. Or ces règles existent et il n'y a pas de surprise avec JavaScript si l'on connait ces règles.
Partager