0

私はこのようなsthをしたい(c ++):

const int SIZE = 5;
int array[SIZE];

しかし、JSでは。私はSIZE値を何度も使用しています(多くの配列とそれ以降のコードで)。同じ値を持つ多くのリテラルを配置したくありません(後で編集する必要がある場合に備えて)。JSにキーワードがあることをどこかで読みconstましたが、すべてのブラウザーで機能するわけではありません(それが本当かどうかはわかりませんが、ユニバーサルソリューションが必要です)。そして、短い/シンプルな方が良いです!;)

4

3 に答える 3

1

キーワードは実際にはconst非標準であり、Mozillaによってのみ実装されているため、クロスブラウザで動作することは保証されていません(ただし、一部のブラウザでは実装されているようです。Bergiの回答のリンクを参照してください)。通常の変数と、定数であることになっていることを示す大文字の名前を使用するだけです。

var SIZE = 5;
var arr = new Array(SIZE);

注:コンストラクターに数値以外のものを渡すと、インデックスで渡した値をArray使用して配列が作成されます。その場合は、リテラル表記()を使用するのが最適です。また、コンストラクターに数値を渡すときは、イニシャルを設定するだけであり、その後はいつでも要素を追加または削除できることにも注意してください。length0var arr = ['foo']length

于 2012-12-14T11:36:15.240 に答える
1

あなたはただ割り当てることができます

var arr = new Array(5);

lengthプロパティはある5が値がない配列 (スパース配列)を初期化します。

C++ のように変数の型を宣言することはできません。JS は緩やかな型付けの言語であり、固定長の配列もありません。s はArrayリストに似ています。constキーワードについては、この質問をご覧ください。

于 2012-12-14T11:33:13.530 に答える
1
Object.defineProperty(window, PI, {
    configurable: false,
    writeable: false,
    value: 3.1415
});

console.log(PI); // 3.1415

/* if 'use strict', the acts below would throw error */

PI = 0; // nothing happened

window.PI = 0; // nothing happened

delete window.PI;  // nothing happened

Object.defineProperty(window, PI, {
    configurable: true,
    writeable: true,
    value: 0
}); // nothing happened

console.log(PI); // 3.1415

配列またはオブジェクトは、その属性を「const」として定義することもできます

Object.defineProperties

しかし、最速の方法は

Object.freeze(obj_name)

ただし、オブジェクト自体が「const」であることを確認する必要があり、その属性は実際に安全です

于 2015-09-01T07:12:25.317 に答える