問題タブ [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 - JavaScript Date オブジェクトの全範囲?
さまざまな実装における JavaScript 日付オブジェクトの mix/max 値に関する情報を読んでいます。
Mozilla のドキュメントによると、JavaScript はUNIX エポックの「 -100,000,000 日から +100,000,000 日まで」をサポートしています。私の計算が正しければ、これは両側で 8.64e15 ミリ秒になるはずです。
Microsoft MSDN によると、JScript はUNIX エポックの「両側で約 285,616 年」をサポートしています。
Google v8 の単体テストは、エポックから+/-1e8 日を示しています。
ECMAScript 5.1では、もう少し明確に指定されています。
時間は、1970 年 1 月 1 日 UTC からのミリ秒単位で ECMAScript で測定されます。時間値ではうるう秒は無視されます。1 日あたり正確に 86,400,000 ミリ秒あると想定されます。ECMAScript Number 値は、–9,007,199,254,740,992 から 9,007,199,254,740,992 までのすべての整数を表すことができます。この範囲は、1970 年 1 月 1 日 UTC から前後に約 285,616 年以内の任意の時点の時間をミリ秒の精度で測定するのに十分です。
ECMAScript の Date オブジェクトがサポートする実際の時間の範囲は、これより少し短く、1970 年 1 月 1 日 UTC の開始時刻の午前 0 時を基準として正確に -100,000,000 日から 100,000,000 日です。これにより、1970 年 1 月 1 日 UTC の両側に 8,640,000,000,000,000 ミリ秒の範囲が与えられます。
この「エポックから +/-1e8 日」の範囲を実際にサポートしていない実装を知っている人はいますか?
javascript - JavaScript の戻り値
私は最初の言語として JavaScript を学んでおり、関数に関する限りここでアイデアを得ていますが、最後の戻り値のポイントが何であるかがわかりません。
それは何のために使用されますか?
javascript - ECMAScript5を正規化するJavaScriptプロジェクトはありますか
一般的なブラウザでのネイティブ正規化ECMAScript5に焦点を当てたJavaScriptプロジェクトはどこかにありますか?
参考までに、次のようにテーブルを正規化します:http: //kangax.github.com/es5-compat-table/
ES5の機能を追加し、ネイティブ実装が存在する場合はフォールバックするラッパーについて知っています。しかし、ネイティブの実装と正規化のみに焦点を当てたプロジェクトは見たことがありません。何かご意見は?
javascript - Object.keys()の複雑さ?
一般的な実装におけるECMAScript5のObject.keys()の時間計算量を知っている人はいますか?キーO(n)
用ですか?n
ハッシュの実装を想定すると、時間はハッシュテーブルのサイズに比例しますか?
言語実装者による保証または実際のベンチマークのいずれかを探しています。
javascript - JSON を生成して ECMAScript 5 Ready Consumption に変換する
私のクライアント/サーバー Web アプリでは、AJAX Get 要求を介してクライアントに渡す大きな JSON 文字列 (C# Web サービスで JSON.NET JToken クラスを使用) を生成しています。
ES5 スタイルで特定のプロパティを定義できるようにしたいのですがprop: { value: '1', enumerable: false, writable: true }
、問題があります。
まず、JSON.parse() は、「列挙可能」および「書き込み可能」プロパティを汎用 JavaScript オブジェクトの汎用プロパティとして単純に解釈します。これはおそらく予期された望ましい動作ですが、新しい ES5 プロパティ属性に関して JSON を「解析」するための同等の方法はありますか?
次に、Object.create() は機能しますが、いくつかの制限があります。例えば、
もちろん、ここでの問題は、と同じオブジェクトを返すように"true" !== true
指示するです。さらに、特定の prop 属性の真実の評価のため、または特に大きなオブジェクトを作成しようとしているため、非常に壊れやすいようです。Object.create()
JSON.parse()
Object.create()
ES5 prop 属性を尊重する方法でこれらのオブジェクトを「解析」するより良い方法はありますか?
javascript - Math.cos(Math.PI/2) は、JavaScript & AS3 で 6.123031769111886e-17 を返しますか?
私がこれを正しく理解していれば、JavaScript と ActionScript 3 の両方がラジアンで動作します。
したがって、次のコードの予想される出力は次のようになります。
これは、Firefox、Chrome、Safari、および Flash Professional CS5.5 でも同じ動作です。Mac OS X 10.7.2 を使用しています。
テスト:
javascript - ECMAScriptの「ネイティブオブジェクト」とは何ですか?
ECMA-262によると、ネイティブオブジェクト
セマンティクスがホスト環境ではなくこの仕様によって完全に定義されているECMAScript実装のオブジェクト
組み込みオブジェクトは次のように定義されます
ECMAScriptプログラムの実行の開始時に存在する、ホスト環境に依存しないECMAScript実装によって提供されるオブジェクト。
メモ付き
この仕様では、標準の組み込みオブジェクトが定義されており、ECMAScript実装で他のオブジェクトを指定および定義できます。 すべての組み込みオブジェクトはネイティブオブジェクトです。
ネイティブオブジェクトがホスト環境ではなくECMA-262仕様によって完全に定義されており、ECMAScript実装が新しい組み込みオブジェクトを指定および定義する場合、これらの新しい組み込みオブジェクトがネイティブオブジェクトでない場合、どのようにしてネイティブオブジェクトになりますか。 ECMA-262仕様で完全に定義されていますか?
私は何が欠けていますか?
javascript - オブジェクトと配列の ECMAScript5 ディープ コピー
ECMAScript5 でオブジェクトのディープ コピーを行うサンプル コードを見つけたいと思います。
コピーはクローンできるはずです
ネストされたオブジェクト
ネストされた配列
配列内のネストされたオブジェクト (各配列項目を個別に複製)
注: jQuery.extend() はケース 3 を処理しないようです)。また、クリーンな ECMAScript でこれを行いたいと考えています。簡単なグーグル検索では、価値のある実装は見つかりませんでした。
javascript - 主要なブラウザーで ECMAScript/JavaScript がサポートされていない領域のリストは?
主要なブラウザー (IE7+、Firefox、Chrome、Safari、Opera について話している) で ECMAScript/JavaScript のサポートが欠落している領域の決定的なリストを知っている人はいますか?
もちろん、コード内で機能検出を行っていますが、理想的には検出を実行する必要がある機能のリストが必要です。
javascript - ECMAScript5 の新機能のポリフィルまたは回避策はありますか?
現在および将来的に機能する新しいECMAScript5 機能を使用して JS コードを記述したいと考えています。
Object.create
すべてのブラウザが、Array.isArray
またはなどのすべての機能 (特に IE) をサポートしているわけではありませんJSON
。
json2.js
サポートをアーカイブするために使用するなど、いくつかの回避策を知っていましたJSON
。他の機能のポリフィルまたは回避策をもっと知りたいです。