タグ付けされた質問 「ecmascript-5」

19
varキーワードの目的は何ですか、いつ使用する必要がありますか(または省略しますか)?
注:この質問は、ECMAScriptバージョン3または5の観点から尋ねられました。ECMAScript6のリリースでの新機能の導入により、回答が古くなる可能性があります。 varJavaScript でのキーワードの機能とは何か、およびその違いは何ですか var someNumber = 2; var someFunction = function() { doSomething; } var someObject = { } var someObject.someProperty = 5; そして someNumber = 2; someFunction = function() { doSomething; } someObject = { } someObject.someProperty = 5; ? どちらを使用しますか、なぜ/何をしますか?

7
オブジェクトのキーの配列を取得する
JavaScriptオブジェクトのキーを、jQueryまたは純粋なJavaScriptのいずれかの配列として取得したいと考えています。 これより冗長な方法はありますか? var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' }; var keys = []; for (var key in foo) { keys.push(key); }

8
凍結とシールの違い
JavaScriptメソッドfreezeとについて聞いたところseal、それを使用して任意のオブジェクトを不変にすることができます。 使用方法の簡単な例を次に示します。 var o1 = {}, o2 = {}; Object.freeze(o2); o1["a"] = "worked"; o2["a"] = "worked"; alert(o1["a"]); //prints "worked" alert(o2["a"]); //prints "undefined" 違いは何であるfreezeとはseal?彼らはパフォーマンスを向上させることができますか?

12
JavaScriptで[] .forEach.call()は何をしますか?
コードスニペットをいくつか見ていたところ、空の配列にforEachが適用されたノードリストに対して関数を呼び出す複数の要素が見つかりました。 たとえば、私は次のようなものがあります: [].forEach.call( document.querySelectorAll('a'), function(el) { // whatever with the current node }); しかし、それがどのように機能するのか理解できません。誰かがforEachの前にある空の配列の動作と動作を説明できますcallか?


2
JavaScript空の配列を減らす
配列を減らすと、数値をゼロにしようとしていますが、関数の動作を明確に理解していません [].reduce(function(previousValue, currentValue){ return Number(previousValue) + Number(currentValue); }); 結果 TypeError: Reduce of empty array with no initial value 配列が空の場合は削減できないようです [""].reduce(function(previousValue, currentValue){ return Number(previousValue) + Number(currentValue); }); 結果 "" 配列の唯一の要素が空の文字列の場合、空の文字列を取得します

17
ネストされたオブジェクトのプロパティを動的に設定します
私は、任意の数のレベルの深さであり、既存のプロパティを持つことができるオブジェクトを持っています。例えば: var obj = { db: { mongodb: { host: 'localhost' } } }; その上で、次のようにプロパティを設定(または上書き)したいと思います。 set('db.mongodb.user', 'root'); // or: set('foo.bar', 'baz'); プロパティ文字列は任意の深さを持つことができ、値は任意のタイプ/物にすることができます。 プロパティキーがすでに存在する場合は、値としてのオブジェクトと配列をマージする必要はありません。 前の例では、次のオブジェクトが生成されます。 var obj = { db: { mongodb: { host: 'localhost', user: 'root' } }, foo: { bar: baz } }; どうすればそのような機能を実現できますか?

7
JavaScriptでオブジェクトを反復できないのはなぜですか?
オブジェクトがデフォルトで反復できないのはなぜですか? オブジェクトの反復に関連する質問が常にあります。一般的な解決策は、オブジェクトのプロパティを反復し、その方法でオブジェクト内の値にアクセスすることです。これは非常に一般的であるため、オブジェクト自体が反復可能ではないのはなぜか疑問に思います。 ES6のようなステートメントは、for...ofデフォルトでオブジェクトに使用すると便利です。これらの機能は、{}オブジェクトを含まない特別な「反復可能なオブジェクト」でのみ使用できるため、使用するオブジェクトに対してこれを機能させるには、フープを実行する必要があります。 for ... ofステートメントは、反復可能なオブジェクト (Array、Map、Set、argumentsオブジェクトなどを含む)を反復処理するループを作成します。 たとえば、ES6ジェネレーター関数を使用します。 var example = {a: {e: 'one', f: 'two'}, b: {g: 'three'}, c: {h: 'four', i: 'five'}}; function* entries(obj) { for (let key of Object.keys(obj)) { yield [key, obj[key]]; } } for (let [key, value] of entries(example)) { console.log(key); console.log(value); for (let [key, …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.