ホームページ >ウェブフロントエンド >jsチュートリアル >Javascriptの学習メモ、operator_javascriptスキルの削除

Javascriptの学習メモ、operator_javascriptスキルの削除

WBOY
WBOYオリジナル
2016-05-16 18:02:251287ブラウズ
1. 構文

削除後の式は、
var o = {a:1} //this のように属性への参照を指定する必要があります。ここで、o.a はオブジェクト o の属性 a への参照です

別の属性名は with ステートメントでのみ使用できます

コピー コード コードは次のとおりです:
with(o){
delete a;
}


2. delete の値
delete は通常の演算子で、true または false を返します。ルールは、削除されたオブジェクトの属性が存在し、削除できない場合は false を返し、それ以外の場合は true を返します。 ここでの特徴は、object 属性が存在しない場合でも true が返されるため、戻り値は削除の成否と完全には一致しません。

コードをコピー コードは次のとおりです。
var o = {a:1};
delete o.a; //return true
var b = 2;
delete b;//return false、ECMA ルール規則: var と function を使用して宣言された変数は削除できません


3. 削除が許可されない状況
上記の例で説明した var および function で宣言された変数は削除できませんが、暗黙の宣言は削除できます

コードをコピー コードは次のとおりです:
function c(){return 12;}
delete c ;//return false
d = function(){return 12;}
delete d;//return true

プロトタイプ チェーンから継承したプロパティは削除できませんが、削除することはできます。プロトタイプ チェーンのプロパティを削除します

コードをコピーします コードは次のとおりです。
function Foo( ){}
Foo.prototype .bar = 42;
var foo = new Foo();
delete foo.bar // true を返しますが、効果はありません
alert(foo.bar; ); // アラート 42、属性は継承されます
delete Foo.prototype.bar // プロトタイプの属性 bar を削除します
alert(foo.bar); // アラートは「未定義」です


4. 特殊なケース
コードをコピー コードは次のとおりです。
eval で実行されるコード内に var や function で宣言された変数がある場合は、それらを削除できます
eval("var a=1"); 🎜>delete a;
alert(a); //未定義エラーを報告します


eval 実行コードのクロージャ内で宣言が行われている場合、変数は削除できません
eval(" (function(){var a=1;delete a ; return a;})()");//1

5. 配列要素の削除

配列要素を削除します。配列は配列の長さに影響しません

コードをコピーします コードは次のとおりです:
var arr = ['yuyin','suhuan','baby' ];
delete arr[0]
alert(arr.length);//alert 3


削除されたキー値は配列に属していませんが、引き続きアクセスでき、その値は未定義です。


var arr = ['yuyin',' suhuan', 'baby'];
arr[0] を削除します; // false
alert(arr[0]); //未定義
arr[0] == = unknown; //true


未定義にキー値を直接代入して比較


コードをコピー コードは次のとおりです。 true alert(arr [0]);//unknown arr[0] === unknown;//true
削除操作では、配列の key value 属性は、それ自体がオブジェクトでもあります。この状況は理解しやすいです。キー値を保持する必要がある場合は、未定義の割り当てを使用できます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。