ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript に関する共通知識の例を共有する

JavaScript に関する共通知識の例を共有する

零下一度
零下一度オリジナル
2017-06-30 10:32:501287ブラウズ

オブジェクト

オブジェクトは 2 つの形式で定義できます: 宣言形式と構築形式

宣言形式の構文: var myObj = {key:value}

構築形式の構文: var myObj = new Object(); myObj.key = value;

タイプ: 6 つの言語タイプがあります : 文字列番号 boolean null 未定義オブジェクト

組み込みオブジェクト: String Number Boolean Object Function Array Date RegExpエラー

var myObject = {

a:2

}

myObject.a; //2 プロパティアクセス

myObject["a"] // 2 キーアクセス

ES 6 計算可能なプロパティ Name

var prefix = "foo";

var myObject = {

[prefix + "bar"] : "hello",

[prefix + "baz"]: "world"

};

myObject["foobar"]; // hello

myObject["foobaz"]; // world

1.writable プロパティの値を変更できるかどうかを決定します

var myObject = {};

Object.defineProperty( myObject,"a",{

value2,

writable:false, // 書き込み不可!

configurable: true,

enumerable: true

});

myObject.a = 3;

myObject.a; // 2

2.configurable

プロパティが構成可能である限り、defineProperty(..) メソッドを使用して変更できます。説明プロパティ。

var myObject = {

a : 2

};

myObject.a = 3;

myObject.a // 3

Object.defineProperty(myObject,"a",{

value; : 4,

writable:true,

configurable:false,// 構成不可

enumerable: ture

});

myObject.a; // 4

; myObject.a = 5;

myObject.a; // 5

Object.defineProperty(myObject,"a",{

value6,

writable:true,

configurable:true,

enumerable: ture

}) // TypeError

configurable flashに変更されました は一方向であり、元に戻すことはできません

deleteは、オブジェクトの削除可能な属性を削除するためにのみ使用されます。

varmyobject = {

a2

};可能 属性がオブジェクトの属性列挙に表示されるかどうかを制御します。

1.オブジェクト定数、writable: false およびconfigurable: false と組み合わせると、真の定数プロパティ

を作成できます(変更、再定義、削除はできません)。

var myObject = {};

Object.defineProperty(myObject,"FAVORITE_NUMBER",{

: 42,

書き込み可能: false,

構成可能: false

})

2.拡張の禁止

オブジェクトによる新しい属性の追加と既存の属性の保持を禁止するには、Object.preventExtensions(...)

var myObject = {

a:2

}; を使用できます。 "

保存されたオブジェクト

"

、このメソッドは実際に既存のオブジェクトに対して

Object.preventExtensions(...) を呼び出し、すべてのプロパティを

configurable:false.4 としてマークします。 Object.freeze(...) このメソッドは実際に既存のオブジェクトに対して Object.seal(...) を呼び出します オブジェクトをディープフリーズすることもできます。

GetterSetter

var myObject = {

//

getterを定義する

get a() {

return 2;

} }

myObject.a = 3;

myObject.a; // 2

getter、のみが定義されているため、

aの値を設定するときは

set

の操作代入操作は無視され、

エラーはスローされません。

一般に、

getter

setterはペアで表示されますvar myObject = {// define a getter for a ゲット( ) {

return this._a_;},// aのセッターを定義する

set a(val) {this._a_ = val * 2; } };

myObject.a = 2;

myObject.a // 2

存在

;

属性にアクセスせずに、この属性がオブジェクトに存在するかどうかを判断できます。 / true

("b" in myObject); // false

myObject.hasOwnProperty("b"); // false

in operatorプロパティがオブジェクトと [[Prototype]]

プロトタイプ チェーンにあるかどうか。

hasOwnProperty(...)

は、プロパティが

myObject

オブジェクト内にあるかどうかのみをチェックします。

プロパティが列挙可能かどうかを判断します: var myObject = {};Object.defineProperty(

myObject,

"a",// a

にしておきますのように通常のプロパティ enumerable と同じ

{enumerable: true,value:2}

);

Object.defineProperty(

myObject,

"b",

// b を列挙できないようにする

{enumerable: false,value:3}

)

myObject.propertyIsEnumberable("a"); // true

myObject.propertyIsEnumber("b"); // false

Object.keys(myObject) ); // ["a"]

Object.getOwnPropertyName(myObject); // ["a","b"]propertyIsEnumerable(...) は、指定されたプロパティ名がオブジェクト内に直接存在するかどうかを確認します。 (プロトタイプチェーンではなく) enumerable:true

Object.keys(...) を満たします。

すべての列挙可能なプロパティを含む配列を返します

Object.getOwnPropertyNames(...)

配列を返します列挙可能かどうかに関係なく、すべてのプロパティが含まれます

Traversing

for .. in オブジェクトの列挙可能なプロパティ リストを反復処理するために使用できます

数値インデックス付き配列の場合は、標準for

loop

ES5

新しく追加された

forEach(..) Every(...) some(..)

forEach(...)

は配列のすべての値を走査し、コールバック関数の戻り値。

every(...)

はコールバック関数が返されるまで実行されます

falsesome(...)

はコールバック関数が返されるまで実行されます

tru​​eEs6

for

を増やします。の

ループ構文

var myArray = [1,2,3]; for(var v of myArray){

console.log(v) }

通常のオブジェクトにはありません

@ @iterator,走査したいオブジェクトをカスタマイズできますvar myObject = { a:2,

b:3

};

Object.defineProperty(myObject,Symbol.iterator,{

列挙可能: false,

書き込み可能: false,構成可能: true,値: function() {

var o = this;

var idx = 0;

var ks = Object.keys(o);

return {

next: function(){

value: o[ks[idx++]],

done:(idx > ks.length)

}

}

}

})

// 手動トラバーサルmyObject

var it = myObject[Symbol.iterator]();

it.next(); // {value:; 2, done: false}

it.next(); // {value: 3, done: false}

it.next(); unknown, done: true}

// Use for..of を走査してmyObject

for(var v of myObject){

console.log(v)

} // 2 // 3

以上がJavaScript に関する共通知識の例を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。