JavaScript——対象の初探侦

2728 ワード

初めて相手を探す
(一)定義:
  • 無秩序なデータセット
  • 宣言方式:
  • let obj = new Object();
  • let obj = { };
  • (二)属性名
  • Object.keys (obj):objのすべての属性名を得ることができる
  • 変数を属性名とします.
  • let a='name'
    var obj = {    a: jack;    //    'a'}
    var obj2 = {    [a]: jack; //    'name'}
  • 比較:[]を加えないと属性名が自動的に文字列になります.逆に変数として値を求めます.値が文字列でない場合は自動的に文字列
  • に変換されます.
    (三)オブジェクトの隠し属性
  • JSの各オブジェクトには隠し属性
  • があります.
  • この隠し属性は、このオブジェクトの共有属性からなるオブジェクトのアドレス
  • を格納する.
  • この共有属性の対象を原型といいます.
  • とは、属性格納プロトタイプのアドレスを非表示にすることである.
  • 原型は実は共有属性の対象であるため、原型も対象である.
  • (四)属性の添削調査
    1)削除
  • delete obj.xxx:Objのxxx属性を削除する
  • 'xxx' in obj:もしxxxがobjでtrueに戻ると、false
  • に戻ります.
  • obj.xxx === undefined
  • 結論:xxxがobjの属性かどうかは証明できない
  • 原因:xxx属性は存在しないかもしれません.またはxxx属性は存在しますが、値はundefined
  • です.
    2)表示
  • Object.keys(obj):自身のすべての属性名を確認する.
  • Object.values(obj):自身の属性値をすべて見る
  • Object.entries(obj):すべての属性と値を見る
  • console.dir(obj):ディレクトリ形式で自身+共有属性
  • を見る.
  • は、一つの属性が自身の属性(非共有属性)かどうかを判断する.obj.hasOwnProperty('xxx')
  • 属性を表示する
  • obj.xxx
  • obj['xxx']:第一の等価
  • obj[xxx]:xxxは変数で、上記の2つとはまったく無関係です.
  • 一つのコードエリアは上記の3つの状況に分けられます.
    let list = ['name', 'age', 'gender']
            let person = {
                name: 'frank', age: 18, gender: 'man'
            }
            for (let i = 0; i 
    3)増改
  • 直接割当値:obj.name="xxx";
  • ロット割当値:
  •     //es6    ,    
    Object.assign(obj,{ name: xxx, age: xxx , gender: xxx })
  • 自分で原型を修正または修正できませんでした.
  • は、obj.toString='xxx'のように.obj自身の属性にのみ作用することができます.
  • 原型を修正する:
  • Obj._u.を修正する.proto_:おすすめしない
  • は修正しなければなりません.Object.prototype
  • を使ってもいいです.
  • は、オブジェクトのプロトタイプを別のオブジェクトに設定します.
  • let obj2.__proto__ = obj (不推奨)
  • let obj2 = Object.create( obj ):おすすめ、es 6の新しい書き方は、効果は第一種類、
  • と同じです.
  • create配合assign作成オブジェクト
  • 4)いくつかの問題
  • 'x' in objobj.hasOwnProperty('x')の違い:
  • 'xxx' in objは、xxxがobjにあるかどうかを確認することしかできず、自身の属性
  • かを区別できない.
  • とは反対に、Obj.hasOwn Property()は、自身の属性を区分してtrueに戻すことができ、自身以外の属性はfalse
  • に戻ることができる.
  • Object.creatとnew Object()の違い:
  •     // a  name       
    var a = Object.create ({ name: 'A' });
        //b  name      
    var b = new Object ({ name:'A' })