Ne pouvez pas utiliser “let” mot-clé dans Safari Javascript?

Je ne comprends pas la meilleure façon d'utiliser les "laisser" mot clé...

  • Dans IE11 et Chrome45 je peux l'utiliser fine
  • Dans Safari8.0.4, comme dans les anciennes versions de google Chrome, il donne l'erreur "unexpected utilisation du mot réservé "let'"
  • Dans Firefox le mot-clé let ne fonctionne qu'à l'intérieur de <script type="application/javascript;version=1.7"/>, mais ce type de script n'est même pas reconnu comme Javascript dans IE11, Chrome45, Safari8.

Voici un JSFiddle, qui se montre en action: https://jsfiddle.net/p6cgtyg6/1/

Donc -- je n'ai pas l'esprit obligeant les utilisateurs à utiliser les versions modernes de leurs navigateurs.

Et je n'ai pas l'esprit à l'exclusion de Safari si honnêtement, il n'y est pas de version de Safari qui prend en charge ce mot clé. (Est-ce vraiment vrai? Pourquoi tout le monde passent tout leur temps à ronchonner à propos de c'est à dire quand Safari semble tellement pire dans l'ES6 termes? Ai-je raté quelque chose?).

Mais comment dois-je me permettre de "laisser" travailler dans Firefox, tout en n'empêchant pas de Chrome/IE? (Je n'ai pas encore trouvé des liens de personnes ronchonner à propos de la façon dont Firefox balise de script se comporte différemment à partir de Chrome, et j'aurais attendu plus de plaintes, donc je me dis que je dois avoir manqué quelque chose d'évident...)

Pourquoi est-ce un manque de soutien pour let une question? ECMA-262 6e Édition n'est encore qu'un projet, la plupart de ses fonctionnalités ne sont pas supportées par tous les navigateurs. Il y a quelques ES5 fonctionnalités qui ne sont pas encore pris en charge.
"for (var i=0; i<c.longueur; i++) { $("</span>").texte(c[i].de titre).cliquez sur(function() { DoStuff(c[i]); }).appendTo(p); }" -- ce code se comporte mal. La méthode la plus simple et la plus propre codefix est l'utilisation de "laisser" à l'intérieur de la boucle for. Je n'ai pas vraiment envie d'écrire yuckier code maintenant lors de l'ES6 est peu autour du coin et il est surtout pris en charge ad permettra de résoudre le problème, bien...
pas besoin de let dans ce cas, si. de nombreux moyens plus faciles et plutôt que d'ajouter une dépendance sur un 6=>5 compilateur.
La restriction de l'accessibilité de votre site web à un couple de la plus récente version de votre navigateur internet étant donné que vous souhaitez utiliser une nouvelle fonctionnalité d'un projet de spécification est votre prérogative de cours. Mais votre situation est entièrement auto-imposés. 😉
c'est un problème parce que le temps a passé, ES6 est maintenant la norme, et safari est le nouvel IE. donc, la question reste encore et n'est plus auto-imposées.

OriginalL'auteur Lucian Wischik | 2015-03-22