問題タブ [ecmascript-5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 文字列としての 8 進数リテラルが数値にキャストされないのはなぜですか?
JavaScript で、8 進数の文字列が 10 進数としてキャストされるのはなぜですか? Number()
orを使用して 16 進リテラル文字列をキャストできますが+
、8 進数ではないのはなぜですか?
例えば:
で解析できることはわかっparseInt("0100" [, 8])
ていますが、16 進数と 10 進数のようにキャストが機能しない理由を知りたいです。
また、厳密モードで ECMAScript 5th Edition から 8 進リテラルが削除される理由を知っている人はいますか?
javascript - 新しい ECMAScript 5 関数にはどのようなモダナイザー スクリプトが存在しますか?
ECMAScript 5 には、かなり多くの優れた機能が追加されています。John Resig がここで概要を説明しています。これはECMAScript 5 互換性表です。
これらの機能の多くは、これらの機能をまだサポートしていないブラウザ向けに「偽造」することができます。これを実行できるスクリプトを知っていますか? 特に Object.create に興味があります。
たとえば、Douglas Crockford の JSON スクリプトは、JSON 関数を作成する前に存在するかどうかを確認します。
JSON に似たものがある場合は、新しい関数を使用する必要があるときにそれらを含めることができます。
javascript - ECMAScript 5 を使用してデフォルトのゲッターとセッターを定義するにはどうすればよいですか?
プロトタイプのデフォルトのゲッターを指定するにはどうすればよいですか? デフォルトのゲッターとは、呼び出された場合に呼び出される関数を意味しますobj.undefinedProperty123
。
Object.prototype.get = function(property) {..} を試してみましたが、この場合は呼び出されません。
javascript - ES5のObject.defineProperty?
列挙を構成可能にする「新しい」Object.create に関する投稿を見ています。ただし、これは Object.defineProperty メソッドに依存しています。このメソッドのクロス ブラウザー実装が見つかりません。
古い Object.create の作成に行き詰っていませんか? IE6/7で動かないものは書けません。
javascript - ES3 プログラムが ES5 エンジンで確実に実行されるようにするにはどうすればよいですか?
そのため、ECMAScript 5 には ECMAScript 3 との非互換性がいくつか導入されています。
例:
多くの 記事が書かれており、ES5 の厳密モードthis === null || this === undefined
で可能であると述べています。
しかし、標準 が実際に示唆しているのは、ES5 エンジンは非厳密モードでもこれを許可するということです。
15.3.4.3 ... thisArg 値がそのまま値として渡され
this
ます。これは第 3 版からの変更で、aundefined
またはnull
thisArg がグローバル オブジェクトに置き換えられ、ToObject が他のすべての値に適用され、その結果がthis
値として渡されます。
現在、ES5 をこのように実際に実装しているブラウザは IE9 だけであり、これにより現在のスクリプトが機能しなくなる可能性があることが判明しています。偉大な。
ES5 仕様の付録 E には、他にも多数の非互換性がリストされています。
では、十分に試行された ES3 スクリプトが問題なく動作し続けることを確認する最善の方法は何でしょうか? ある種の自動テストスイート?すべて手動でテストする必要がありますか?
javascript - Javascript ES5の現在のステータスは何ですか?
どのブラウザ/エンジンがすでにES5[strict]をサポートしていますか?
javascript - 厳密モードでこれが違法なのはなぜですか?
ええ、ええ、私は知っています、厳密なモードはまだ出回っていませんが、実際には、私は将来を計画しています...
それで、これはなぜですか:
... ES5 Strictモードでは許可されていませんか?
それとも私は誤解していますか?JSLint:
もう少し冗長になりますか?
編集:
混乱を避けるために、元のコードの詳細を次に示します。
javascript - Googleクロージャーコンパイラーに「厳密な使用」を強制する方法; コンパイルされたjsコードで?
モジュールパターンを使用していて、次のようなものがある場合:
Google Closure Compiler を使用してコードをコンパイルすると、"use strict";
ディレクティブはコンパイル済みファイルになりません。
では、Closure Compiler が ES5/strict ディレクティブを削除しないようにするにはどうすればよいでしょうか?
(コンパイルされたファイルの最初の行に「use strict」を追加するだけの、ES5/strict モードを強制する他のモードを使用したくないことに注意してください。ここで説明されているモジュール パターンを使用したい.)
javascript - hasOwnProperty と ECMAScript 5 厳格モード
私は興味があります: ECMAScript5 仕様が厳密モードで事前定義されたオブジェクト プロトタイプのプロパティを強化していない理由を知っている人はいますか? たとえば、hasOwnProperty の定義方法に関する情報はないようです。私はそれを再定義しようとしました (そして FF4 ベータ版でコードをテストしました) が、これでうまくいくことができました。私が何も悪いことをしていなければ、これは誰でもObject.prototype.hasOwnPropertyプロパティを再定義でき、プロパティを動作させるためにそれに依存するすべてのコードを実際に台無しにすることができることを意味します...
これについての考え?
編集:仕様を掘り下げると、もう少し情報が...
以下のコメントにあるように、Object.prototype に適用されたメタデータ (Writable、Enumerable、および Configurable がすべて false に設定されている) と FF 4 ベータ版 (これは私がテストを実行するために使用しています) は例外を生成します。
ありがとう。
javascript - JavaScript (ECMAScript5) Strict Mode は、広範囲に使用する価値のあるパフォーマンス上の大きな利点を提供しますか?
私は JavaScript の Strict Mode の使用について少し調べていますが、一般的に言えば、JS エンジンがコードをより適切に最適化できるようにするために、より厳格なルールのセットをコーダーに強制することが考えられているようです。Visual Basic の "Option Explicit" に相当する JavaScript のように感じられます。
これが基本的に Strict Mode をコードに適用することの正味の効果である場合、パフォーマンスの違いは、ケースバイケースではなく習慣から適用する価値があるでしょうか? コードの安定性以外に考慮すべき利点はありますか?
スクリプトに厳密モードを適用する主な理由は何ですか?