2017-02-16 10 views
0

ただ(const) Behavior will vary across browser implementationsを読んでください。私が指摘した答えはかなり古い(2012)ので、まだそれほど悪いですか?Javascript:定数とクロスブラウザーの互換性を扱う

私は自分のプロジェクトでクロスブラウザの互換性が必要なので、constキーワードの使用は避けてください。

「はい」の場合 - どのように交換すればよいですか?

UPD:

ちょうどdeveloper.mozilla.org上の記述を確認しました。そして、YES:それは悪いことであるように見えます...

enter image description here

+0

これはES6 constに関連する質問であり、これらの参照をサポートしていないブラウザへの移植です。したがって、IE 11(以下)のようなES5ブラウザがjsを実行できるようにするには、トランスバータ( 'babel')が必要です。 –

+0

@ siam私が理解しているように、 'const'で定義された変数は何らかの保護を持っています。だから私はそれを使うことは良い考えだと言いたいのですが...可能でないなら - 私は 'var'を避けるべき重大な理由は見ません。私はそれを受け入れるための答えとしてこれを投稿できますか?ありがとう! –

+0

@siam 'var'は' let'や 'const'と等価ではありません。 –

答えて

1

constは、古いブラウザ(私はあなたを見てる、IE、Safariなど)には使用できません。

安全に再生したい場合、ビルドステップ(Babel、TypeScriptなど)がない場合は、varのみを使用してください。 BabelとTypeScriptの両方でconstletvarにコンパイルします。したがって、これらのツールを使用する場合は、constletを自由に使用できます。

varは、厳密にはletまたはconstのいずれかに等しくないことに注意してください。 (varは吊り上げられ、範囲が異なります)。

また、IEやSafariについて気にしない場合は、ほとんどの場合、ビルドツールなしでconstを使用できます。

+0

[Say what?](http://i.imgur.com/v1c78yE.png) – deceze

+0

@decezeまだ市場に出回っているiOSデバイスでSafariを試してみましょう。 –

+0

これは重要な修飾子です。 :) – deceze

0

古いブラウザをサポートするには、constの代わりにvarを使用するだけで済みます。 (** varconstに相当しません) を保護し、varが変更されないようにするには、グローバルではなくプライベートスコープ内に置くだけです。 (部分的にはconstのように機能します)

関連する問題